lg 课堂夺命问答3

进程描述和控制
回顾
操作系统准则:1)所有资源有效 2)运行在系统中的程序能交替执行(避免垄断) 3)能保证处理器、储存有效利用

一、进程的概述
1.背景
为什么:引入多道后,程序之间竞争,提供有效策略让程序有序访问
进程通讯:在操作系统中能进行有效数据通讯
概念:1)执行中的程序
          2)由单一顺序的执行线索、一个当前状态和一组相关的系统资源(上下文)(PCB)所描述的活动单元。

2.进程控制块PCB:控制、调度进程

把进程控制块分为三部分信息:1)标识信息

进程描述符:

- 内部标志符: 由操作系统赋予每个进程的一个唯一的数字标识符,它通常为一个进程的序号,方便了系统使用。

- 外部标识符: 由创建者产生,是由字母和数字组成的字符串,为用户进程访问该进程提供方便。
为什么要用整数来标识进程:为了区别进程

2)状态信息:进程上下文
1))用户可见
2))控制和状态寄存器
3))堆栈指针

3)控制信息:1)调度信息(包含五部分1.进程运行状态:当前正在执行;2.进程优先级:体现有差别对待;3.进程调度的其他信息:最大执行时间etc;4.事件:事件被中断了,具体是被什么中断,中断原因类别;5.数据结构:具体PCP块是如何进行组织的such as 列表) 2)对进程进行控制和管理的信息

IPC:进程间通讯
进程特权:标识进程是用户模式下还是
存储管理:指定进程采用什么内存方式进行管理
资源所有权和利用:多张记录的表,指针指向资源。
进程控制块:只能被OS访问/维护,不能应用程序访问
注意两个问题:1)PCB块被破幻会造成整个崩溃 2)语义改变

二、进程状态
1.进程轨迹(问答题方式进行考核)
trace:多个程序执行的指令顺序
We can characterize behavior of the processor by showing how the traces of the various processes are interleaved.
缺陷:程序太多了不好画图
调度器/分派器:使处理器从一个进程切换到另一个进程。


2.进程状态图

定义:程序运行的各个情况
状态:1)执行状态: ---IO中断;时钟中断----2)未运状态:已经加载完,等待分配CPU,等待其他程序执行 
四个变化:进入、退出、中断、调度

两状态进程模型
第一种变化,enter 到not running:程序变成未运行状态,从辅存加入到系统;第二种变化,not running到running: 当正在运行的进程被中断而转移到等待进程队列中or该进程已经结束或取消而离开系统,cpu空闲,从而调度器从队列中选择一个未运行的进程运行。第三种变化,running到exit态,一个程序执行完毕了或者被取消了,离开系统。Ps:对于单核计算机,处在running的只有一个,但处在not running的个数因不同OS而异,如Linux有1023个;

3.进程的创建
四个情况:1)新的批处理作业 2)分时系统:交互登录,一个用户登录后操作系统会创建进程 3)程序运行时产生进程,给应用程序提供服务(操作系统创建一个进程,代表用户程序执行一个功能,使用户执行一个功能,使用户无需等待,如控制打印的进程)(4)由现有的进程的派生(前一个为父进程,被派生的进程称为子进程)

进程终止:1)执行完毕 2)出现异常 3)杀死 

两状态模型局限:1)无效调度:只要cpu空闲,就会选用not running 中选择一个执行,可能会产生无效调度,因为没有区分处在not running 状态的原因是在等待io还是等待cpu

引入五状态模型的原因和方法:解决上面两状态模型的局限,将非运行状态分成两个状态:就绪(ready)和阻塞(blocked),此外还增加了新建态和退出态。


五状态模型:1)运行态 2)就绪态 3)阻塞态 4)新建态 5)退出态

Null -> New / New -> Ready / Ready -> Running / Running -> Exit / Running -> Ready / Running -> Blocked / Blocked -> Ready / Ready -> Exit / Blocked -> Exit

变化(11种):1)空状态-新建态:已经为进程创建PCP  2)新建态-就绪态:操作系统准备好再接纳一个进程时,把一个进程从New转换到Ready  3)就绪-运行:CPU空闲,操作系统从就绪中选择一个进程,为他分配CPU 4)运行态-退出态:程序终止三种状态 5)运行态--就绪态:超时,时间片已经执行到了,释放CPU权利 6)运行态-阻塞态:如果进程请求它必须等待的某些事件,则进入阻塞态,如执行中碰到io请求等中断。7)阻塞态-就绪态:进程等待的事件发生了,但是暂时得不到cpu;
上面7种对五状态进程图中已有的所有变化的箭头描述,除了图中箭头标出的,还存在以下变化:ready到exit/ blocked到exit(进程被父进程杀死了,父进程可以在任何时刻终止子进程,如父进程结束,子进程不管在ready还是running还是在blocked,都被直接杀死)
七状态:


key:被挂起的进程:进程被调离内存,当条件允许时,再调回内存,重新进入等待被执行的状态即就绪态。

七状态(掌握15种状态变化)
引入原因:解决五状态进程模型的问题:设想极端情况,因为io非常慢,就绪队列没有一个元素,所有的都在blocked queue当中,cpu还是空闲的很浪费。     解决方法一:加内存,但不太适用,因为成本增加,而且更大内存往往会造成更大的进程,而不是更多的进程。     解决方法二:SWAP交换技术(IO操作),进程处于阻塞状态,全部从内存中移除来,移到磁盘上,从而加载可以运行的进程。→引用了挂起状态。目的就是为了不让cpu空闲,哪怕利用一点io代价换取cpu性能是值得的)

挂起状态定义:进程部分或全部不在主存中
分类:1)阻塞挂起 2)就绪挂起:刚刚挂起的进程放在辅存,IO发生,进程就从阻塞挂起转变为就绪挂起 3)就绪态:进程在内存中并可以执行 4)阻塞态:进程在内存中并等待一个事件
阻塞到阻塞挂起:进程处于阻塞状态,全部从内存中移除来,移到硬盘上,
阻塞到就绪挂起:等待的io事件发生了
就绪挂起到就绪:就绪队列有空的元素,从就绪挂历中哪一个到就绪,从辅存到主存
就绪到就绪挂起:发生几率小,一般两种情况:。。

导致进程挂起的原因:1)交换 2)其他OS原因 3)交互式用户请求 4)定时 5)父进程请求

三、进程的描述
操作系统怎么:
四类资源:cpu; memory ;IO ;data 相应四类数据结构
1. 内存表:用于跟踪内(实)存和外存(虚拟内存)。
包含以下信息:分配给进程的内存;分配给进程的外存(具体分给哪块辅存);内存块或虚拟机内存块的任何保护属性(哪一块是共享的);为虚拟内存提供的信息(P信息、M信息)

2.IO 表:IO设备的状态;IO设备是否可用;IO操作中涉及端口号涉及储存位置。 

3.文件表: Existence of files (文件是否存在)

Location on secondary memory (文件位置)
Current Status (当前状态)
Attributes (属性)


4.进程控制表:
程序运行


为什么要区别用户态和内核态:保护计算机资源的合理分配和使用,防止用户程序干扰操作系统执行,提高计算机的可靠性。

User mode(用户模式):只能使用计算机有限的指令1)Less-privileged mode2)User programs typically execute in this mode
System mode/control mode/ kernel mode(内核模式):所有机器指令,对所有内存能进行访问
Translation(切换) between the two model:

状态控制寄存器中有一位叫CPL(current privileged level )


User mode->System mode:操作系统对
System mode->User mode:系统调用或操作系统直接通过硬件方式复位


进程创建:1)给新进程分配一个唯一的进程标识符2)给进程分配空间3)初始化进程控制块4)设置正确的连接5)创建或扩充其他数据结构


进程切换定义:碰到一些事件操作系统将CPU控制权交给另一个进程
什么时候进程切换:1)时钟中断2)IO中断 3)内存失效4)陷阱3)系统调用
中断机制:1)中断2)陷阱3)系统调用(把用户进程设置为阻塞态)
陷阱:因为程序自身原因造成程序执行异常,可能引起进程切换。
系统调用:突然访问操作系统提供的服务


状态变化:1)Save context(上下文) of processor including program counter and other registers
2)对正在执行的状态更新(通常是running—ready or blocked)
3)移到对应队列ready; blocked; ready/suspend
4)执行调度
5)对所选进程进行更新
6)数据结构更新
7)恢复所选进程的状态


模式切换:用户模式与系统模式的改变
1.保存进程上下文 2.对模式
与进程切换相比:


四、进程的控制(讲在OS中进行有效管理的手段,进程是操作系统管理的内容之一。进程、内存、辅存的管理)
进程映像:程序、数据、栈和属性的集合
PROCESS IMAGE:1)USER DATA: 2)USER PROGRAM 3)SYSTEM STACK 4)PROCESS CONTROL BLOCK
进程控制块:与进程相关联的用于控制进程的属性的集合

数据+pcp(包含哪三部分的信息?)

Non-process Kernel(无进程内核)
Execute kernel outside of any process
Operating system code is executed as a separate entity that operates in privileged mode
Execution Within User Processes(在用户进程中执行)
Operating system software within context of a user process
Process executes in privileged mode when executing operating system code
Process-Based Operating System(基于进程的OS)
Implement operating system as a collection of system processes
Useful in multi-processor or multi-computer environment

操作系统的执行(三种操作系统中,单一内核、分层内核、微内核,OS采用什么方式运行的)
单一内核:把操作系统所有功能都放在内核中去,单一的进程,必然产生进程切换
分层内核:操作系统分为若干,有部分服务交给上层和作为用户进程的上下文。只产生模式切换。
微内核:当进程产生中断,模式切换,访问操作系统,再由操作系统提出服务请求,又产生模式切换。(进程切换必然包含模式切换,模式切换并不一定产生进程切换)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值