IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 进一步学习操作系统 - 哈工大李治军老师 - 学习笔记 L8L9 -> 正文阅读

[系统运维]进一步学习操作系统 - 哈工大李治军老师 - 学习笔记 L8L9

L8 CPU管理的直观想法

操作系统在管理CPU的时候引出了多进程图像

CPU的工作原理:自动取指执行
如何使用CPU:设置PC初值

问题:IO指令执行很慢,CPU效率不高
解决方法:多道程序,并发交替执行

怎么并发:修改PC,恢复现场(程序的执行状态信息)
(每个程序有一个存放信息的结构:进程控制块PCB)

运行的程序和静态程序不一样!
所有的不一样都表现在PCB中。
程序+所有不一样 引出 进程的概念。

进程是进行(执行)中的程序
进程有开始、结束,程序没有
进程会走走停停,走停对程序没有意义
进程需要记录执行时的各种信息,程序不用

CPU工作:启动一个进程,让CPU来执行这个进程
CPU很好的工作:启动多个进程,让CPU来执行这些进程

管理CPU的核心就是让CPU执行多个进程

这一块应该挺好理解的。
进程是进行中的程序,进程是动态的,程序是静态的。
管理CPU就是让CPU高效率的工作,即能并发交替执行多个进程。

L9 多进程图像

在这里插入图片描述

在这里插入图片描述
main 在的 fork() 创建了第一个进程:运行 if(!fork()){init();}
init 执行了 shell(Windows桌面)
shell再启动其他进程

用户使用计算机就是启动一堆进程, 管理计算机就是管理这一堆进程。

多个进程推进的过程图像就是多进程图像。
多进程图像从启动 开始 到关机 结束。就是计算机一开始就会启动一个进程:shell或Windows桌面(用Windows比较好理解:一开机出现桌面,这是一个进程,然后在这个进程中我们可以开启其他进程,所以就是多进程)

1.多进程如何组织
在这里插入图片描述
在这里插入图片描述
组织:PCB + 状态 + 队列
操作系统如何组织多个进程:用PCB放在不同的队列中,用这些状态来推进多个进程,进行状态转化

2.多进程如何交替
交替的三个部分:队列操作 + 调度 + 切换

切换时将将寄存器等信息写入PCB时需要精细的控制,要用汇编写,不能用C语言

3.多进程如何影响

问题:一个进程可能访问修改另一个进程内存地址的内容
解决的办法:限制对地址100的读写
多进程的地址空间分离:内存管理的主要内容

在这里插入图片描述
4.多进程如何合作
多个进程访问同一个资源有冲突

生产者-消费者问题

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

在这里插入图片描述

多进程组织:PCB + 状态 + 队列
PCB是进程存在的唯一标志。
进程有三种基本状态:运行态、就绪态、阻塞态。
根据状态不同,PCB加入不同的状态队列:就绪队列、阻塞队列...
进程:https://blog.csdn.net/tfnmdmx/article/details/119203992(王道笔记)
多进程交替:队列操作 + 调度 + 切换
调度有三个层次,这里讲的是低级调度(进程调度):按照某种方法和策略从就绪队列中选取一个进程,将处理机分配给它。
选好进程后,CPU将当前进程的现场写入当前进程的PCB,再读取新进程的PCB,就完成了进程切换。
调度:https://blog.csdn.net/tfnmdmx/article/details/119214333
多进程影响:某进程修改另一进程内容
多进程的地址空间分离:内存管理的主要内容
L20 中讲
内存管理:https://blog.csdn.net/tfnmdmx/article/details/119279673
多进程合作:访问同一资源会有冲突
核心在于进程同步(合理的推进顺序)
L16 L17
https://blog.csdn.net/tfnmdmx/article/details/119242665
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-08-05 17:44:38  更:2021-08-05 17:47:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/28 4:30:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计