操作系统(2):进程管理
前言
上一篇写了操作系统的基本概念,但是没有概述,先把概述补上。
操作系统的学习分为五部分
- 概述
- 进程管理
- 内存管理
- 文件管理
- IO管理
目前是学完了内存管理,感受是太简单了,核心就是进程管理(从页数上就能看出来),面试考的多的也是进程管理,内存管理就是内存、地址、分页简单的很,文件管理是讲的文件、目录、磁盘,IO更不用说,后三个加起来才顶一个进程管理进程。
说了不少那么就开始吧。
进程
- 什么是进程?进程和程序的区别
进程是程序的一次执行,进程是动态的程序是静态的,可以说进程包含程序。 - 进程的组成
PCB(进程控制块)、程序、数据,可以是多个程序生成一个进程。其中PCB是核心,是进程的唯一标识,创建进程实际上创建的是PCB。 - 进程状态转换
- 进程切换
程切换因为这有涉及到一系列的概念:上下文
。
上下文有进程上下文、中断上下文、处理机上下文。
进程上下文: 就是一个进程在执行的时候,CPU的所有寄存器中的值、进程的状态以及堆栈上的内容。
中断上下文: 就是硬件为了让内核处理中断而传递过来的这些参数和内核需要保存的一些其他环境(主要是当前被中断的进程环境)。
处理器上下文就相当于进程上下文,是书上的概念网上并没有查到。
操作系统是在并发的执行多个进程,实现的方法就是进程间切换。
- 进程通信
共享存储、消息队列、网络通信、管道通信 - 线程
轻量的进程,基本的CPU执行单元,进程是资源分配的基本单元,线程无法直接请求系统资源,只能是使用进程请求来的系统资源。
处理机调度
要并发,进程就要切换(调度),如何调度:
作业调度——》内存调度——》进程调度
进程同步
事实上这里与多线程学习是重合的。
- 临界资源
和竞态条件貌似是一回事,资源只有一个,如果争抢那就会出现错误 - 同步
对于某个任务,要让进程有执行,很像async/await - 互斥
对于临界资源,一个进程用完了另一个再用,不要抢。 - 信号量
信号量,顾名思义就是一个用来标志的变量,在实现同步和互斥的时候用。 - 管程
信号量必须用PV原语操作,PV原语是要每个进程自己写一个,这太不方便了。
管程实际上是在“面向对象”(资源抽象)的基础上实现的,
死锁
就是两个进程同时申请一个资源,系统不知道把资源给谁,那就都等着吧。
感悟与近况
操作系统我是大二上学的这门课,当时真的是怎么都不明白,我比较喜欢怪环境哈哈,当时看的书、看的视频清一色的风格都用概念去解释一个概念,根本看不懂,当时也没用清晰的脉络。
现在有了,是真的清楚,后面的内存管理、文件管理、IO我可能还会写博客,但是也可能不会,下篇关于操作系统的文章应该就是问答题的模式了。
这个进程管理很多算法都没有写,概念也省略了很多,就都在书里面了。重点是概述,还有进程管理,还有内存管理。
内容来自:王道考研操作系统考研复习指导