这是我参与11月更文挑战的第18天,活动详情查看:2021最后一次更文挑战
考研倒计时:37天
参考资料: 王道操作系统考研复习指导 天勤操作系统高分笔记
对于进程管理这一章,主要核心知识点有进程和线程的基本概念,然后是处理机的调度,历年大题常考的PV操作(进程同步),最后就是死锁相关的内容。
本篇先总结选择题常考的进程与线程概念问题。
进程和线程常考概念汇总
-
程序是静态的;进程是动态的
-
PCB是进程存在的唯一标志。程序段、数据段、PCB三部分组成了进程实体(进程映像),进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。
-
作业是用户向计算机提交任务的任务实体,一个作业可由多个进程组成,且至少有一个进程组成,但一个进程不能构成多个作业。
就绪态-->运行态: 进程被调度 运行态-->就绪态:时间片到;主动让出CPU 运行态-->阻塞态:进程申请某种资源;等待某个事件发生 阻塞态-->就绪态: 申请的资源被分配;等待事件发生
PS:没有阻塞态到运行态的转换!
进程创建: 创建原语,像关中断指令和开中断指令这两个特权指令可以实现原子性。
进程终止: 撤销原语
进程阻塞: 阻塞原语
进程唤醒: 唤醒原语
进程切换: 切换原语,将运行环境(进程上下文)存入PCB
无论哪种进程控制原语,首先更新PCB中的信息--将PCB插入合适的队列--分配回收资源
-
进程通信有三种方式①共享存储②消息传递③管道通信
管道是一个特殊的共享文件,就是内存开辟一个固定大小的内存缓冲区,只能采用半双工通信,各进程要互斥访问,当管道写满,写进程被堵塞;管道读空,读进程被堵塞。只要管道没空,读进程就可以从管道读取数据。 共享存储是通信进程自己负责实现互斥;管道通信是由操作系统负责实现互斥。 -
线程 引入线程后,进程只作为除CPU之外系统资源的分配单元(如打印机、内存地址空间);线程则作为处理机的分配单元。进程是资源分配的基本单位,线程是调度的基本单位。
线程几乎不拥有系统资源,每个线程都有一个线程ID、线程进程块。
同一进程的线程切换,不会引起进程切换。不同进程的线程切换,会引起进程切换。
线程的实现方式:用户级线程和内核级线程
用户级线程,线程切换可以在用户态下即可完成。开销小效率高,缺点是一个用户级线程被堵塞后,整个进程都会被堵塞。
内核级线程的管理由操作系统内核完成,线程切换必须在核心态下才能完成,一个被堵塞,别的线程还能继续执行。缺点开销大成本高。
内核级线程才是处理机分配的单位。
多线程模型有一对一、多对一、多对多。
习题
【2014年408】下列关于管道通信的叙述中,正确的是()
点击查看答案
选C管道是固定大小的内存上的一片缓冲区,所以不受磁盘容量限制,一个管道实现不了双向数据传输,D选项比如管道只要不空,既可以读又可以写。
【2012年408】
点击查看答案
选A,做对了嘛xdm! d项同一进程各个线程拥有相同的地址空间。部分内容待补充完善~
如有误,请多指正!