操作系统-CPU管理(多进程图像)
- 本系列博客为观看哈工大李治军老师的操作系统视频而做的整理总结。
- 本文为第三篇,主要CPU管理
关键词索引:
并发(执行多道程序)、进程、多进程图像、PCB(Process Control Block)、进程状态图、调度(getNext() )、 进程同步
见后续系列文章
一、直观设想
程序载入内存,设好PC指针初值后,
CPU从该指针指向的内存地越取指执行,
然后PC指针自动增加,自动执行指令
二、存在的问题与实际管理思想
IO 指令执行非常慢
如果不作额外处理 ,只让PC自己增加
碰到IO指令时,cpu会等在那里。 CPU的利用率非常低
类比 烧水 洗衣等同步干活的事情。
当需要等待的时候,切换过去执行别的事情。
多道程序交替执行
CPU上交替执行多个程序: 并发
在来回切换的过程中,需要有一个记录,保留场景
(运行的程序和静态的程序是不一样的)
描述这个区别, 引出 "进程” 的概念。 (运行中的程序)
进程有开始、结束, 需要有记录。 (程序是静态的)
三、多进程图像
有一个cpu , 所以只有一个进程在运行 。 ( 联系多核)
多进程如何切换?
队列操作+调度+切换
schedule() 。 依托于PCB
getNext() 调度 , 有很多种算法 。例: FIFO ,优先级
保存 ,取值 . 此处需要用汇编进行精确控制
要解决该问题,需要限制对100的读写。
多进程的地址空间分离。 映射表
多进程涉及到内存管理
如果处理不合理,两个进程要同时放入一块内存,冲突,
推进顺序不合理会导致执行错误
为了合理推进, 要加锁