(2)操作系统-进程、线程与作业

多道程序设计

多道程序设计的提出:
处理机、内存、设备利用率低

程序道数过少:系统资源利用率低
程序道数过多:系统开销大,程序响应速度下降
系统开销:运行操作系统程序做管理锁花费的时间和空间

好处:
提高系统效率(吞吐量)
吞吐量 = 计算任务数/处理时间
自然的表达问题内在的并行性
e.g.
一个Word进程,三个线程
1:交互编辑
2:拼写检查
3:定时存入内存
多道程序设计的问题
处理机资源的管理
存储资源的管理
地址空间的独立共享性
内存外存(swap space )的分配与去配
【p.s.Swap分区在系统的运行内存不够用的时候,把物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap分区中,等到那些程序要运行时,再从Swap分区中恢复保存的数据到内存中】
设备资源管理
分配策略
IO控制

进程的引入

程序:
推进-暂停-推进-暂停。。。
暂停:保存PSW,PC,寄存器
推进:恢复寄存器,PSW,PC
暂停原因:
自身:资源等待,启动IO
外部:被剥夺CPU资源
进程:
可参与并发执行的程序
动态:执行中的程序
并发:参与并发
进程状态:
创建状态
进程由创建而产生。创建进程是一个非常复杂的过程,一般需要通过多个步骤才能完成:如首先由进程申请一个空白的进程控制块(PCB),并向PCB中填写用于控制和管理进程的信息;然后为该进程分配运行时所必须的资源;最后,把该进程转入就绪状态并插入到就绪队列中。
运行RUN
等待WAIT
就绪READY:进程已分配到除CPU以外所有的必要资源后,只要再获得CPU,便可立即执行
状态转换
(2)操作系统-进程、线程与作业
状态转换对用户是透明的
思考题
运行->就绪:被剥夺CPU
就绪->运行:给CPU
运行->等待:启动IO,申请资源未得到
等待->就绪:IO结束,资源得到

进程控制块PCB:

进程存在的数据结构
包含内容:
进程标识:PID
进程状态
线程信息:PSW
所属用户
调度参数:CPU分配资源时的优先级
消息指针:不同进程之间法消息
队列指针
地址信息:进程地址
打开文件:进程打开的文件表
家族联系:一个进程一般只有一个父进程
进程内容
PCB(prigramming control block)
创建进程 创建PCB 撤销PCB 撤销进程
程序:代码+堆栈+数据
(2)操作系统-进程、线程与作业
其中,代码和数据是用户可以看到的,叫进程的影像(process image)
队列:
等待队列:每个等待事件一个
就绪队列
运行指示字:每个处理机一个