操作系统精髓与设计原理--线程,对称多处理和微内核

来源:互联网 发布:软件培训班要多少钱 编辑:程序博客网 时间:2024/05/17 06:24

* 进程的两个特点:*
拥有资源所有权的单位通常成为进程或任务。
1.资源所有权
一个进程包括一个存放进程映像的虚拟地址空间,进程映像是程序,数据,栈和进程控制块中定义的属性的集合。一个进程时常拥有对资源的控制或所有权,这些资源包括主存,I/O通道,I/O设备和文件等。操作系统执行保护功能,以防止进程之间发生不必要的与资源相关的冲突。
2.调度/执行
一个进程沿着通过一个或多个程序的一条执行路径执行,其执行过程可能与其他进程的执行过程交替进行。因此,一个具有执行状态和分派了优先级的进程是一个被操作系统调度并分派的实体。

多线程
每个线程有:
(1)线程执行状态(运行,就绪等)
(2)在未运行时保存的线程上下文,可以把线程看成是进程中一个独立的程序计数器在操作。
(3)一个执行栈
(4)用于每个线程局部变量的静态存储空间
(5)对所属进程的内存和资源的访问并与该进程中的其他线程共享这些资源。

由于进程中的所有线程共享该进程的状态和资源,他们驻留在同一块地址空间中,并且可以访问到相同的数据。
当一个线程改变了存储器中的一个数据项时,其他线程在访问这一数据项时能够看到变化后的结果。如果一个线程为读操作打开一个文件,那么同一个进程中的其他线程也能够从这个文件中读取数据。

线程的重要优点
(1)在一个已有进程中创建一个新线程比创建一个全新进程所需的时间要少许多。(快10倍)
(2)终止一个线程比终止一个进程花费的时间少。
(3)同一进程内线程间切换比进程间切换花费的时间少。
(4)线程提高了不同执行程序间通信的效率。独立进程间通信需要内核介入,已提供保护和通信所需要的机制(信号量,管道,命名管道,共享内存,信号,消息,内存映射,套接字),但是,由于在同一个进程中的线程共享内存和文件,他们无需调用内核就可以相互通信。

线程同步
由于一个进程中的所有线程共享同一个地址空间和诸如打开的文件之类的其他资源。一个线程对资源的任何修改都会影响同一个进程中其他线程的环境。

线程实现
(1)用户级线程
在一个纯粹的用户级线程中,有关线程管理的所有工作都由应用程序完成,内核没有意识到有线程的存在。
(2)内核级线程
有关线程管理的所有工作都是由内核完成,应用程序部分没有进行线程管理的代码,只有一个到内核级线程设施的应用程序编程接口。

对称多处理(SMP)系统
四类计算机系统:
(1)单指令单数据(SISD)流
(2)单指令多数据(SIMD)流
(3)多指令单数据(MISD)流
(4)多指令多数据(MIMD)流:一组处理器同时在不同的数据集上执行不同的指令序列。

对称多处理系统
内核可以在任何处理器上执行,并且通常是每个处理器从可用的进程或线程池中进行各自的调度工作。(先了解)

SMP系统的组织结构:
SMP系统有多个处理器,每个都含有他自己的控制单元,算术逻辑单元和寄存器。每个处理器都可以通过某种形式的互联机制访问一个共享内存和I/O设备;共享总线就是一种通用方法,处理器可以通过存储器互相通信,还可以直接交换信号。存储器通常被组织为允许同时有多个对存储器不同独立部分的访问。

Windows的进程对象和线程对象:P131(154)

进程:对应一个拥有存储器,打开的文件等资源的用户作业或应用程序的实体
线程:是顺序执行的一个可分派的工作单元。

0 0
原创粉丝点击