操作系统1 下载本文

用户线程的CPU时间以进程为单位,同一进程的多个线程共享一个CPU时间片。

A个进程中一个线程。B进程中一百个线程。 线程的参考资料来自“rnordern Operating Sys tem”。 2.4.3 一、 1、 2、

3、用户级线程与内核支持线程的实现模式。 用户 用 空间 户 空 间 实时系统 内核 内核 内核 内核 空间 空间 b a Unix不支持线程但有各种各样的,用户空间线程全在其上运行。 二、比较

当用户级线程执行系统调用时,它调用运行时系统的一个过程,这个过程首先检查的确定此线程是否要被挂起。如果需要挂起,它把线程的寄存器保存在一个表中,并在表中查找未被阻塞的线程使之加入运行,查到后,把此线程中得存的寄存器的内容重新装入到机器的寄存器中,当栈指针的值和程序记数器的值交换后,这个新线程就自动提入运行。如果机器中有一次保存和装入所有寄存器的指令,那么,整个线程切换可以只用极少的指令就可以完成,这样线程切换比内核捕获快得多。(用户级线程的切换,只需改变程序计数器的内容,让它指向被调度的线程)。

对于每个进程而言,内核中用一张表示保存每个线程的入口,有寄存器状态优先级以及别的信息,表中保存的信息与用户级线程要给存的信息一样,只是前者保存在内核中,后者保存在用户空间中,当一个线程阻塞而要调度另一个线程时,可以调度用一进程的线程,也可以调度其它进程的线程。

而用户级线程方式中,运行系统总是运行同一进程的线程,(因为运行系统无调度能力)。直到内核把CPU交到别处为止。(或此进程中已无就绪的线程)。

2002年9月 本章小结

一、主要内容:

1、 程序并发执行的特征、任意两个程序可以并发执行的条件。 2、 进程与程序的关系:区别 进程的状态;联系

3、 进程控制块的定义、作用、特征、Linux 的进程控制块。 4、 OS对中断管理。 5、 OS对时钟的管理。

6、 进程的创建与撤消。 7、 进程的阻塞与唤醒。 8、 fork( )与EXE( )的功能。

9、 Linux的启动:Bios的作用、Boot loader的作用、init进程。 10、 线程的引入。 二、基本概念:

1、 程序的并发执行。 2、 进程。 3、 就绪态、 4、 阻塞态。 5、 OS内核。 6、 线程。

三、思考题,(打√者为基本要求)

1、 √进程状态转换图。

2、 √进程与程序的关系?不同OS的PCB结构是一样的吗?PCB有什么特征? 3、 √内核级线程与用户级线程的区别。

4、 fork( )gn Exec( )如何配合使用以执行用户程序? 5、 以Linux为例说明OS的启动过程? 6、 OS中与中断相关的程序有哪些?

7、 OS的时钟管理有什么作用?为什么说时钟中断是OS的脉博? 8、 如果你是OS开发者,本章中,有哪些程序需要你开发? 9、 √试述微内核原理及微内核的优点。

在讲第三章之前,先回忆一下第二章引入进程概念一节的内容。 1、 回忆程序并发执行的特征:间断、不封闭、不可再现。 2、 程序并发执行的条件。

3、 问题怎样使不具备并发执行条件的进程也可以并发执行? 回忆例子:P1:a=read(f1), P2:b=read(f2), P3:c=a+b. 运行,出现1+1≠2的结果,

引入一种怎样的机制,使得P1、P2、P3能按一定的:“规矩”来执行,“封死”会引起错误的执行顺序,得证它们正确执行?就是我们第三章“进程的同步与通信”一章要讲的一个主要内容。