OS入门--
进程
思想:并发——多道互不干扰的程序,通过PC(program counter)切换交替执行,提高cpu利用率
-
进程概念:
问题:只是切换,无法记录切出时原程序的状态
解决:引入PCB(Program Control Block)组织管理多个进程
结果:产生运行的程序 进程
优点:cpu作为管理者,不是低级的打工人了
-
多进程图像:
原理:一个命令启动一个进程,返回shell等待启动其他进程
形象展示:任务管理器
多进程组织:PCB+状态(就绪,运行,阻塞)+队列(等待,就绪)
交替方式:队列操作+调度+切换
schedule(){ pNew = getNext(readyQueue);//调度 switch_to(pCur,pNew);//物理cpu->pCur,pNew->物理cpu }问题:无法保证进程不侵犯其他进程的内存,实现地址空间的分离
解决:使用映射表(每个进程都是用虚拟地址,都可从0开始+d;但物理地址是区别的,为x+d)
问题:对于共享数据(如:共享缓冲区),可能会同时修改造成数据混乱
解决:进程同步(合理的推进顺序)
正在执行的进程上锁,直到完全结束再开锁
等待执行的进程要检查锁,直到开锁后才能执行
-
用户级线程
问题:资源(内存)移动易产生错误
解决:线程将资源和指令序列分离,只切换指令序列,不需要切映射表
问题:
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
