操作系统原理(线程)

导读:本篇文章讲解 操作系统原理(线程),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

线程

引入线程的原因:

总地来说:方便用户

{

  • 进程的属性是独立运行和独立拥有资源,系统在调度一个进程的同时还涉及资源的分配与状态转换。
  • 如果在调度一个程序时不涉及资源的管理,调度过程会大大加快。
  • 线程是进程的一个实体,是被系统独立调度的基本单位。
  • 一个进程可建立多个线程,这些线程共享进程拥有的全部资源
  • 多个线程之间并发执行,切换时快速简便——不消耗cpu的资源

}

特征:

【动态性、并发性、(运行)独立性、异步性】

线程与进程的比较:

{
进程:
    是程序的一次执行,每个进程都有自己的地址空间、内存、数据栈及其他辅助记录运行轨迹的数据

线程:

    是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位
    所有的线程运行在同一个进程中,共享相同的运行资源和环境
    线程一般是并发执行的,使得实现了多任务的并行和数据共享。

进程和线程的区别:

    一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程
    线程的划分尺度小于进程(资源比进程少),使得多线程程序的并发性高。
    进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率
    资源分配给进程,同一进程的所有线程共享该进程的所有资源。
    CPU分给进程程,即真正在CPU上运行的是线程
    线程不能够独立执行,必须依存在进程中

优缺点:

线程执行开销小,但不利于资源的管理和保护;而进程正相反
}

课内要求:线程和进程的比较

{
(1)调度:同一进程的多线程间调度时,不引起进程的切换;不同进程的线程间调度时,需要进程切换。
(2)并发性:一个进程的多个线程之间可以并发执行。
(3)资源的拥有:线程不拥有系统资源,不拥有代码段,数据段。
(4)系统开销:
【线程:系统仅为其保存少量寄存器内容;进程:整个当前cpu环境。】
}

os对线程的实现方式:

1)内核级线程
依赖于os核心,由内核的内部需求进行创建和撤销,用来执行一个指定的函数
#内核维护进程和线程的上下文信息
#线程切换由内核完成
#一个线程发起系统调用而阻塞,不会影响其他线程的运行
#时间片分配给线程,所以多线程的进程获得更多cpu时间。
2)用户级线程
不依赖于os核心,应用进程利用线程库提供创建、同步、调度和管理线程的函数来控制用户线程。
调度由应用软件内部进行,无需用户态/核心态切换,所以速度特别快。os核心并不知道用户级线程的存在,只知道用户进程的存在。
一个线程发起系统调用而阻塞时,则整个进程在等待。时间片分配给进程,多线程时则每个线程就慢。

内核级线程与用户级线程的比较

  • 线程的调度与切换速度(用户级线程无需用户态/核心态切换)
  • 系统调用(用户级线程阻塞整个进程)
  • 线程执行时间:例:一个用户级进程拥有一百个线程,cpu分配给进程1秒,则每个进程只能进行0.01秒;而一个核心级进程拥有一百个线程,cpu独立分配给线程时间片,所有时间不限制到结束任务。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/103317.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!