程序的顺序执行的特点
- 顺序性
- 封闭性
- 程序执行结果的确定性
- 程序执行结构的可再现性
程序的并发执行有什么特点?并发和并行有什么区别?
- 在执行期间并发程序相互制约
- 程序与计算不再一一对应
- 并发程序的执行结果不可再现
程序的并行执行与并发执行存在差别。前者指不论在宏观的时间周期上看,还是从微观上看,若干程序确实在同时运行;而程序的并发执行,如果在单处理器系统中,他们在宏观上市同时进行的,但在微观上,这些程序仍然是顺序执行的。
多道程序设计环境具有特点
- 独立性
- 随机性
- 资源共享性
什么是进程
进程是具有一定独立功能的程序在某个数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位
在操作系统的角度来看,可将进程分为系统进程和用户进程。系统进程执行操作系统程序,完成操作系统的某些功能。用户程序运行用户程序,直接为用户服务。系统进程的优先级通常高于一般用户进程的优先级
进程的组成部分有哪些
- 程序
- 数据
- 进程控制块
进程和程序的联系和区别
- 联系
程序是构件程序的组成部分之一,一个进程的运行目标是执行它所对应的程序,如果没有程序,进程就失去了其存在的意义。从静态的角度看,进程是由程序、数据和**进程控制块(PCB)**组成。 - 区别
程序是静态的,进程是动态的
进程是程序的一次执行过程。程序是永久存在的。而进程是为了程序的一次运行而暂时存在的
一个进程可以包括若干程序执行,而一个程序亦可以产生多个进程
可再入程序有什么特性?
一个能够被多个用户同时调用的程序称为可再入程序;
可再入程序必须是纯代码程序,程序在执行中不会修改自身的代码。可再入程序的对象,即数据,是与程序相分离的,要求调用者提供专用的工作区,以保证程序以同样方式为各用户服务
进程的特性
- 独立性:一个进程是一个相对完整的资源分配单位
- 并发性:一个进程可以同其他进程向前推进
- 动态性:进程对应着程序的执行过程。进程的动态性体现在两方面,首先,进程有其生命周期,有产生,也有消亡。其次,再进场的生命周期内,进程的状态是不断变化的
- 交往性:一个进程在运行过程中可能会与其他进程发生直接的或者间接的相互作用
- 异步性:每个进程按照各自独立的,不可预知的速度向前推进
- 结构性:一个进程有程序、数据和进程控制块三部分组成
进程的三状态模型
- 运行状态:进程已获得处理器,并且在处理器上执行的状态
- 就绪状态:一个进程已经具备运行状态,但由于没有获得处理器而不能运行所处状态
- 等待状态:也成阻塞或封闭状态,是指进程因等待某种事件发生而暂时不能运行的状态
三种状态之间的转换
五状态模型
- 运行状态:进程占用处理器资源,处于此状态的进程的数目小于等于处理器的数目
- 就绪状态:进程已获得除处理器外的所需资源,等待分配处理器资源,只要分配处理器就可以执行
- 阻塞状态:由于进程等待I/O操作或进程同步等条件而暂停运行时处于阻塞状态
- 创建状态:进程正在创建过程中,还不能运行
- 结束状态:进程已结束运行,回收除进程控制块之外的其他资源,并让进程从进程控制块收集有关信息
进程控制原语
- 创建进程
操作过程是:先申请一块空闲的PCB区域,然后将有关的信息填入PCB,置该进程为就绪状态,最后把它插入就绪队列中 - 撤销进程
操作过程是:找到要被撤销进程的PCB,将它从所在队列中消去,撤销属于该进程的一起子孙进程,释放被撤销进程所占用的全部资源,并消去被撤销进程的PCB - 挂起进程
- 激活进程
- 阻塞进程
操作过程是:由于进程正处于运行状态,因此首先应中断处理器的执行,把处理器的当前状态保存在PCB的现场信息中,然后把进程的当前状态置为等待状态,并把它插入到事件的等待队列中去 - 唤醒进程
操作过程是:在等待队列中找到该进程,将进程的当前状态置为就绪状态,然后将它从等待队列中撤出并插入到就绪队列中排队,等待调度执行 - 改变进程优先级
进程控制块的作用是什么?其主要内容有哪些
为了便于系统控制和描述进程的活动过程,在操作系统核心中定义了一个专门的数据结构称为进程控制块
进程控制块的内容包括
- 调度信息
- 进程名
- 进程号
- 地址空间信息
- 优先级
- 当前状态
- 资源清单
- 家族关系
- 消息队列指针
- 进程队列指针
- 当前打开文件
- 现场信息
什么是线程
线程是进程中的一个实体,是处理器调度和分配的基本单位
线程的属性
- 每个线程有一个唯一的标识符和一张线程描述表,线程描述表记录了线程执行的的寄存器以及栈等现场状态
- 不同的线程可以执行相同的程序
- 同一个进程的各个线程共享该进程的内存地址空间
- 线程是处理器的独立调度单位,多个线程是可以并发执行的
- 每个线程在创建后便开始了它的生命周期,直至终止;线程的生命周期内会经历等待状态、就绪状态和运行状态等各种状态变化
引入线程的好处
- 创建一个新的线程花费时间少
- 线程之间的切换花费时间少
- 由于同一个进程内的线程共享内存和文件,所以线程之间相互通信无需调用内核
- 线程能独立执行,能充分利用和发挥处理器与外部设备并行工作能力
进程调度算法
- 先来先服务算法
- 最短进程优先算法:只有在所有进程都同时可运行的情况下,最短进程优先算法才是最优化的
- 最短剩余时间优先算法
- 最高响应比优先算法
- 轮转算法
- 最高优先级算法
- 多级反馈队列算法
系统有某类资源9个部件,供4个进程共享。为保证系统安全,限定每个进程最多申请的资源数是( )。
A.2 个
B.3 个
C.4 个
D.9 个
查看答案解析 【正确答案】 B
【答案解析】 资源m,进程n,最多申请x。安全状态:n(x-1)+1<=m。4(x-1)+1<=9,解得x<=3,所以每个进程最多申请的资源数是3个
进程控制块应包含的信息类型是
- 标识信息
- 说明信息
- 现场信息
- 管理信息