操作系统——进程(L8,L9)

cpu管理的直观想法

CPU通过取值执行来运行。
在这里插入图片描述

在这里插入图片描述在这里插入图片描述当没有fprintf这一句的时候,执行10000000次循环需要的时间大约为0.015s,但是当有fprintf时,执行100次循环却需要0.859s。说明使用这样的IO操作相比运算操作对于CPU的运行来说是一种负担。
具体原因如下,也可以查看博主的计算机组成原理的中断的相关内容

在这里插入图片描述在这里插入图片描述在这里插入图片描述怎么实现并发呢

在这里插入图片描述当切换进程的时候,将进程的各个信息保存下来,当下一次切换到这个线程的时候,将保存下来的信息复原,就可以接下去执行这个被保存的进程了。

在这里插入图片描述

多进程图像:

在这里插入图片描述
在这里插入图片描述

当我们的1号进程开始运行,就不断的通过fork函数,来执行其他的任务
在这里插入图片描述维护一个就绪队列,我们需要在就绪队列中选择一个PCB块,让其执行;同时维护一个阻塞队列,这些队列中的各个PCB需要等待一个事件的发生,当发生完了就可以加入就绪队列了
在这里插入图片描述
在这里插入图片描述
schedule();切换函数,找到下一个合适的进程,将合适的进程切换到执行状态。
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

我们需要将不同的进程的地址进行隔离,保证不会有出现一个进行修改了其他进程的数据
在这里插入图片描述

通过映射表,将不同的不同进程的相同地址映射到不同的物理地址上去
在这里插入图片描述
我们的电脑只需要将要打印的文件放入打印队列中,然后打印进程控制打印,中间遇到打印机的工作而不需要CPU参与,就将打印进程阻塞,CPU调用其他进程执行;当时当进程1和进程2都需要将打印文件放入队列中,就需要竞争。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
当我们进行对共享内存的操作的时候,就需要上锁,保证内存不会同时被两个进程修改 或者 覆盖,需要保证操作的唯一 在这里插入图片描述

Tips:想要做实验4的同学,建议去了解一个文件描述符,相信如果你知道了这个东西会对计算机的输入输出有耳目一新的感觉

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值