一.cpu管理直观做法
最只管想法cpu循环取址执行,所以只需要设好pc初值即可
存在问题:io会占用时间长,导致cpu利用率低.
所以需要不停切换,执行多个程序,也就是并发.
但是在切换的时候,除了记录返回地址,还要记录当前执行程序运行时刻(也就引入进程),就像人看书一样有人打扰,需要做个记号,下次接着看.使用的是PCB(Process Control Block)的数据结构来记录进程信息,这是操作系统中最重要的结构.
总结:用多进程管理cpu.
二.多进程图像
1.多进程组织:
采用的是PCB+状态+队列的方式(类似银食堂排队,阻塞状态类比忘记带饭卡了,就将阻塞态放入就绪态).
2.多进程交替:
2.1进程调度
比如FIFO(就像食堂排队),存在问题就是优先级怎么设定?后面在具体介绍.
2.2进程切换
利用PCB存储信息与恢复信息.
2.3.多进程影响:
由于同时放在内存中,可能导致不同进程内存共用,导致程序崩溃.
解决办法:需要对进程进行内存管理,采用映射表,将不同进程地址对应的物理地址区分开.
3.多进程合作:
将进程放入队列里,按需索取.
存在问题:由于交替执行,可能同一位置,被不同进程看见,典型例子:生产者和消费者进程.所以在多进程合作时,需要给某些属性上锁,不能被任意进程访问.
参考:
操作系统_哈尔滨工业大学_中国大学MOOC(慕课)