哈工大操作系统之多进程图像

计算机硬件、操作系统、启动、接口
调用函数:
OS 管理CPU,通过调用函数
进程:CPU管理+内存管理
文件:磁盘管理+终端设备管理
通过接口进入OS(fork)管理CPU
通过Open操作文件
*p=7就是访问内存;

操作系统的核心:管理计算机硬件,通过多进程图像管理CPU

管理CPU,先使用CPU

CPU的工作原理

将程序存放在内存,发出指令后,CPU取指、解释执行指令。
管理CPU:设置好PC初值就行(一段程序的开始地址)

问题:CPU利用率低(如果先等I/O执行完)

多道程序、交替执行:并行处理的思想

在这里插入图片描述
CPU和设备的利用率都提高了

一个CPU面对多个程序

一个CPU上交替的执行多个程序:并发

如何做到并发

修改寄存器PC,切换到下一个程序。同时还要记录返回地址,记录程序执行到哪里。返回来时继续执行。

引入“进程”

运行的程序和静态程序不一样。进程时进行(执行)中的程序。
进程需要记录ax,bx。

多进程图像:多个进程使用CPU的图像

在这里插入图片描述
启动了的程序就是进程,所以是多个进程推进:
OS只需要把这些进程记录好,分配资源。

多进程图像从开机启动到关机结束

main中的fork()创建了第1个进程
shell再启动其他进程

if(!fork()){ init();}

多进程图像:多进程如何组织?

PCB(Process Control Block):用来记录进程信息的数据结构(如队列)
PCB+状态+队列
运行——>等待;运行——>就绪;就绪——>运行
在这里插入图片描述

多进程如何交替

//启动磁盘读写;
pCur,state='W';
//将pCur放到DiskWaitQueue;
schedule():
schedule()
{
   pNew=getNext(ReadyQueue);//调度
   switch_to(pCur,pNew);
   }

交替的三个部分:队列操作+调度+切换
FIFO:公平的策略
Priority:优先级怎么设定

多进程如何合作?

从纸上到实际:
生产者——消费者实例:
在这里插入图片描述
在这里插入图片描述

核心在于进程同步(合理的推进顺序)

写counter时阻断其他进程访问counter :给counter上锁

总结:
在这里插入图片描述

发布了16 篇原创文章 · 获赞 0 · 访问量 311

猜你喜欢

转载自blog.csdn.net/qq_43156233/article/details/104029322