考研408总结【操作系统】---进程管理(上)

439 阅读4分钟

这是我参与11月更文挑战的第18天,活动详情查看:2021最后一次更文挑战

考研倒计时:37天

参考资料: 王道操作系统考研复习指导 天勤操作系统高分笔记

对于进程管理这一章,主要核心知识点有进程和线程的基本概念,然后是处理机的调度,历年大题常考的PV操作(进程同步),最后就是死锁相关的内容。

本篇先总结选择题常考的进程与线程概念问题。

进程和线程常考概念汇总

  • 程序是静态的;进程是动态

  • PCB是进程存在的唯一标志。程序段、数据段、PCB三部分组成了进程实体(进程映像),进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。

  • 作业是用户向计算机提交任务的任务实体,一个作业可由多个进程组成,且至少有一个进程组成,但一个进程不能构成多个作业。

      就绪态-->运行态: 进程被调度
      运行态-->就绪态:时间片到;主动让出CPU
      运行态-->阻塞态:进程申请某种资源;等待某个事件发生
      阻塞态-->就绪态: 申请的资源被分配;等待事件发生
    

PS:没有阻塞态到运行态的转换!

    进程创建: 创建原语,像关中断指令和开中断指令这两个特权指令可以实现原子性。
    进程终止: 撤销原语
    进程阻塞: 阻塞原语
    进程唤醒: 唤醒原语
    进程切换: 切换原语,将运行环境(进程上下文)存入PCB
    
    无论哪种进程控制原语,首先更新PCB中的信息--将PCB插入合适的队列--分配回收资源
  • 进程通信有三种方式①共享存储②消息传递③管道通信

      管道是一个特殊的共享文件,就是内存开辟一个固定大小的内存缓冲区,只能采用半双工通信,各进程要互斥访问,当管道写满,写进程被堵塞;管道读空,读进程被堵塞。只要管道没空,读进程就可以从管道读取数据。
      共享存储是通信进程自己负责实现互斥;管道通信是由操作系统负责实现互斥。
    
  • 线程 引入线程后,进程只作为除CPU之外系统资源的分配单元(如打印机、内存地址空间);线程则作为处理机的分配单元。进程是资源分配的基本单位,线程是调度的基本单位。

线程几乎不拥有系统资源,每个线程都有一个线程ID、线程进程块。

同一进程的线程切换,不会引起进程切换。不同进程的线程切换,会引起进程切换。

线程的实现方式:用户级线程和内核级线程

    用户级线程,线程切换可以在用户态下即可完成。开销小效率高,缺点是一个用户级线程被堵塞后,整个进程都会被堵塞。
    内核级线程的管理由操作系统内核完成,线程切换必须在核心态下才能完成,一个被堵塞,别的线程还能继续执行。缺点开销大成本高。
    内核级线程才是处理机分配的单位。
    多线程模型有一对一、多对一、多对多。

习题

【2014年408】下列关于管道通信的叙述中,正确的是() image.png

点击查看答案选C

管道是固定大小的内存上的一片缓冲区,所以不受磁盘容量限制,一个管道实现不了双向数据传输,D选项比如管道只要不空,既可以读又可以写。

【2012年408】 image.png

点击查看答案选A,做对了嘛xdm! d项同一进程各个线程拥有相同的地址空间。

部分内容待补充完善~

如有误,请多指正!