操作系统——多个进程间的故事
看到操作系统进程这一块儿都会有点乱吧。come on!
上回说到单个进程一生的故事,现在的操作系统是允许多个进程并发执行的,那么它们之间又会擦出什么火花呢?
看“漫画”(干货、可下载):文字为辅
1、进程控制块 PCB:每个进程都有唯一的进程控制块,它是操作系统感知进程存在的唯一标志。包含信息:进程标识符信息、处理机状态信息(通用寄存器、指令计数器、程序状态字PSW、用户栈指针)、进程调度信息、进程控制信息
2、进程调度算法:具体内容见操作系统概念总结;原则:周转时间短、响应时间快、截止时间保证、系统吞吐量高、处理机利用率好
3、进程切换:
保存包括程序计数器和其他寄存器在内的CPU上下文环境(存进度)、
更换被替换进程的进程控制块(换老大)、
修改进程状态,把执行态改为就绪态或阻塞态(改状态)、
将替换进程的进程控制块移到就绪队列或阻塞队列(换队列,**注意换进程控制块与改状态的先后顺序**——执行队列是 否允许存在非执行态进程)、
执行 通过进程调度程序 选择的新进程,并更新改进程的进程控制块(do ,*可参考进程控制块包含信息*)、更新内存 管理的数据结构(*进程执行需要获得资源*)、
恢复 被调度程序 选中的进程的硬件上下文(恢复进度)
4、进程具体执行情况(超级通道);
进程同步:并发执行的进程要共享系统的软、硬件资源,为了保证在多任务共享系统资源的情况下程序执行得到正确的结 果,引入同步机制; 原则:空闲让进、忙则等待、有限等待、让权等待
信号量机制:信号量用来判断能否访问与信号量对应的共享资源,可看做连接同步进程与共享资源的电话线
5、线程执行:类似于进程的执行情况,注意线程与进程的关系,谁的状态影响谁
6、死锁问题(注意区分I/O管理的中断):涉及到多个参与者时总会产生对资源的纠纷,进程也不列外,程序执行时进程访问共享资源顺序不当导致死锁,条件有4:互斥条件、请求和保持条件、不剥夺条件、环路等待条件——缺一不可;预防死锁当然就要从产生条件入手了——不让4个条件同时满足就OK了
每个东西都有它存在的理由,他们不是单独来到操作系统中的,再难理解的概念、再突兀的设置,当了解它本身的概念作用、与它相关的东西后,逻辑上它自然就那么合理、那么妙了,至少在个人的认知上,找不到半点不让它存在的理由。这大概就是学操作系统的乐趣、学习的乐趣吧。
后续概念汇总!