操作系统 李治军 进程与线程(一)

进程与线程

L8 CPU管理的直观想法

在这里插入图片描述
管理CPU的时候引出的多进程图像,操作系统通过多进程管理CPU。
管理CPU,首先应该使用CPU。话说什么是CPU。
CPU是如何工作的?冯诺依曼说了要把程序放在内存中,然后设置一个地址,CPU就把地址放在地址总线上,内存就把50的代码传到CPU。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
取址执行。
在这里插入图片描述
CPU就是自动的取指-执行。
管理CPU最直观的方法,PC初值设置就行了
在这里插入图片描述
提出问题:问题尼玛多了,所谓地址也就是二进制码,为什么可以自动累加。
CPU如何获取数据并处理的?CPU如何将负责的程序找出各种连线。看起来实际上CPU在其时间单位上只处理一件事?
在这里插入图片描述
把fprintf(I/O指令)变成计算程序。所以说平时在用MATLAB的时候打印文字和图片时执行会变慢很多。存磁盘时候需要驱动磁臂,这完全是一个机械结构。执行I/O操作非常慢。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20181228211105898.png?x-oss-
工作的时间和停止的时间基本上是相等的,所以PC的利用率是50%。但是正常的编程的话,CPU利用率趋近于0。回来的过程就是中断。中断软中断被称为系统调用。
在这里插入图片描述
多道程序交替执行
在这里插入图片描述
在这里插入图片描述
里面的寄存器怎么保护?交替的时候寄存器的内容应该被覆盖?压栈保存?
CPU应该并发,交替执行,这是怎么做到的?时间:26分钟
在这里插入图片描述
在这里插入图片描述
需要记录一些信息,记录切出去时程序的状态信息。
在这里插入图片描述
运行的程序与静态程序是不一样的,运行的程序必须记录一些信息。
。。。。。。这课讲的是真好啊。。。。。。
进程就是运行的程序。就和区别静态程序的。。。。
在这里插入图片描述

L9 多进程图像

在这里插入图片描述
让CPU高效工作必须让其多进程工作。
在这里插入图片描述
上层用户看到就是进程有三个,第一个进程可能是PPT,第二个进程是WORD等等。。
而下层就是将这些进程记录好,每个进程都创建一个结构体PCB
在这里插入图片描述
创建了shell,用户执行一个命令也是创建了一个进程。用户用PC就是创建进程,管理计算机就是管理多进程。
多进程如何组织?操作系统感知进程就是PCB,
在这里插入图片描述
多个结构体,操作系统都知道在哪。
在这里插入图片描述
怎么具体的切换多进程?这里面是非常复杂的。
在这里插入图片描述
pNew 通过getNext(调度)选择下一个进程,这也是非常讲究的,每年也在更新,里面有很多算法。这边先介绍两个简单的。FIFO就是将排队的第一个,公平但是没有优先级。
在这里插入图片描述
在这里插入图片描述
把CPU保存在结构体中,这边是汇编代码,C语言不行不能实现精确的控制。
在这里插入图片描述
多进程都放在内存中,会出现问题。就把进程2的东西修改了。为什么不能用DPL,因为只有DPL在OS中才能为0,这边都是用户侧都是3.
在这里插入图片描述
通过映射的方法,这边是内存管理的内容。映射表是内存管理的核心。
在这里插入图片描述
访问的【100】都是真实的内存,是映射表
在这里插入图片描述
每个进程都有一个映射表
在这里插入图片描述
多进程在内存中共存。才能实现多进程,
在这里插入图片描述
有人向里面放东西,有人取东西。假设进程1,2都看到7这边可以放,但是交替执行导致1没放完,2就也往里放,所以7这边就乱套了。
在这里插入图片描述
buffer是共享缓存区,缓存区满了就不能往里放了
交替执行会出现乱套的情况。
在这里插入图片描述
切换的时候必须要合理的推进顺序
在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值