读现代操作系统第一二章笔记
第一章
os为用户提供一个更好、更清晰、更简单的计算机模型。
大多数的计算机有两种运行模式:内核态和用户态。软件中最基础的部分是操作系统,它运行在内核态中,在这个模式中,os具有对所有的硬件的完全访问权。
处理器
cpu是计算机的大脑,它从内存中取出指令并执行。一些对程序员可见的专用寄存器:程序计数器(保存了将要取出的下一条指令的内存地址)、堆栈指针(它指向内存中当前栈的顶端,该栈包含了每个执行过程的栈帧,保存了有关的输入参数,局部变量以及临时变量)、程序状态字(CPU优先级、模式)
改善性能的方法
- 流水线
- 超标量CPU,
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DIiEfQ6l-1642772099180)(D:\文章汇总\IT相关\计算机基础\现代操作系统图片\9E586579B52D839056FE54D2759E73DC.png)]
多线程和多核芯片
多线程允许CPU保持两个不同的线程状态,然后在纳秒级别时间尺度内来回切换,每个线程对于操作系统来说就像是单个CPU。
存储器
存储器的三个重要指标:执行指令的速度块、存储空间充分大
但是现在的技术无法满足这样的要求,所以有了如下图的分层次结构来应对不同的处理方式
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dYGTaNT5-1642772099181)(D:\文章汇总\IT相关\计算机基础\现代操作系统图片\970A137847E81000F8D233117B285852.png)]
存储器系统中顶层是CPU中的寄存器,与CPU是相同的材料制成,所以和CPU一样快。典型的存储容量是32位的CPU是32*32,64位CPU是64*64,下一层是高速缓存,主要被分成告诉缓存行,其典型大小为64字节,地址0至63对应告诉缓存行0,一次类推
总线
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2y1izZ67-1642772099181)(D:\文章汇总\IT相关\计算机基础\现代操作系统图片\QQ截图20220113101355.png)]
操作系统结构
课后习题
操作系统两大作用
提供用户抽象以及管理计算机资源
列举每种操作系统的作用
大型机:一些大型公司的数据中心可见;服务器:工作站;多处理器操作系统:将多个CPU连成单个操作系统;个人计算机操作系统:windows、linux;嵌入式操作系统:微波炉、电视机、汽车
分时系统和多道程序系统的区别是什么?
多道程序系统是将内存分为几个部分,当一个作业等待IO操作完成时,另一个作业可以使用CPU,如果内存中存放足够多的作业则CPU利用率可以达到接近100%;分时系统实际上是多道程序系统的一个变体。每个用户都有一个终端,多个作业轮流执行。云计算的概念:相对小型的计算机连接到巨大的远程数据中心服务器,本地计算机处理用户界面,而服务器进行计算
为了使用高速缓存,主存被划分为若干cache行,通常每行长度为32或64字节。每次缓存一整个cache行。每次缓存一整行而不是一个字节或一个字,优点是什么?
经验证据表明,存储器访问表现出引用局部原则,即如果读取某一个位置,则接下来访问这个位置的概率非常高,尤其是紧随其后的内存位置。 因此,通过缓存整个缓存行,接下来缓存命中的概率会增加。 此外,现代的硬件可以将32或64字节块整个传输到高速缓存行,比单个字节读取,总共读32或64字节的速度要快得多。
第二章进程与线程
1. 进程的模型
一个进程就是一个正在执行程序的实例,包括程序计数器、寄存器和变量的当前值。也就是说,每个进程拥有它自己的虚拟cpu。
2. 进程的创建
1)系统的初始化
2)正在运行的程序执行了创建进程的系统调用
3)用户请求创建一个新进程
4)一个批处理作业的初始化
进程分为前台进程和后台进程,还有一类进程负责处理电子邮件、web页面、新闻、打印之类活动的进程被称为守护进程。在UNIX和windows系统中,进程创建之后,父进程和子进程有各自不同的地址空间。如果其中某个进程在其他地址空间中修改了一个字,这个修改对其他进程而言是不可见的
3.进程的终止
1)正常退出
2)出错退出
3)严重错误
4)被其他进程杀死
4.进程的层次结构
进程只能有一个父进程,但是可以有多个子进程多个字进程。UNIX在启动时,一个称为init的特殊进程会出现在启动映像中。相反,Windows中没有进程层次的概念,所有进程都是地位相同的,唯一类似于进程层次的暗示的是创建进程的时候,父进程会得到一个句柄,用该句柄可以控制字进程,但是它有权力将这个令牌送给某个其他进程。
5.进程的状态
- 运行态(该时刻进程实际占用CPU)
- 就绪态(可以运行,即如果有空闲的CPU分配给它,它便能运行,但是目前尚未有空闲的CPU)
- 阻塞态(除非某种外部事件发生不然进程不能运行,比如说等待用户输入,必须有用户输入了才能继续运行)
6.进程的实现
为了实现进程模型,操作系统维护着一张表格(即进程表)每个进程占用一个进程表项:包括程序计数器、堆栈指针、内存分配状况、所打开的文件状态
7.线程
线程产生的原因:许多应用中同时发生着多种活动,其中某些活动随着时间的推移会被阻塞,通过将应用程序分解成可以准并行的多个顺序线程,程序设计会变得简单;线程比进程更轻量级,所以更容易创建也更容易撤销。进程就是用某种方法把相关的资源集中在一起。进程有存放程序正文和数据以及其他资源的地址空间,进程拥有一个执行的线程,通常简写为线程。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cwBaqhjC-1642772099182)(D:\文章汇总\IT相关\计算机基础\现代操作系统图片\QQ截图20220118092632.png)]
8.进程间的通信(IPC)
主要考虑三个问题:(1)一个进程如何把信息传递给另一个(2)确保两个或多个进程在关键活动中不会出现交叉(3)正确的顺序。(2)、(3)的问题同样适用于线程
1.竞争条件
多个进程读写某些共享数据,而最后的结果取决于进程运行的精确时许,称为竞争条件。
2.临界区
在某些时候进程可能会访问共享内存或共享文件,或执行其他一些会导致竞争的操作,把对共享内存进行访问的程序片段称为临界区域或临界区,使得两个进程不可能同时访问临界区,就能避免竞争条件。
几种实现手段:
- 屏蔽中断
最简单的方法是使每个进程在刚刚进入临界区后立即屏蔽所有中断,并在就要离开之前再打开中断,CPU只有在发生中断或其他中断时才会进行线程的切换,这样,屏蔽中断后CPU将不会被切换到其他进程。缺点:中断的功能交给用户不合适;多核芯片数量越来越多需要更加复杂的计划。
锁变量
可能会发生和假脱机目录一样的问题
严格轮换法
轮流进入临界区,但是当一个进程比另一个进程慢很多时可能会出现忙等待
Peterson解法
TSL指令
TSL RX, LOCK
需要硬件支持的一种方案将一个内存字lock读到寄存器RX中,然后在该内存地址中存一个非零值,读字操作和写字操作是不可分割的,执行TSl指令的CPU将锁住内存总线,以禁止CPU在本指令结束之前访问该内存。不同于屏蔽中断,屏蔽中断不能阻止总线上第二个处理器访问该内存
9.睡眠与唤醒
之前的解法都是如此:当一个进程想进入临界区时,先检查是否允许进入,若不允许,则该进程将忙等待,直到允许为止(忙等待有一定的问题)。而睡眠与唤醒方法就是当进程无法进入临界区时,将其变为睡眠状态直到允许进入临界区时再唤醒
睡眠唤醒方式解决消费者-生产者问题:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-urQ0ehlY-1642772099182)(D:\文章汇总\IT相关\计算机基础\现代操作系统图片\QQ截图20220120095858.png)]
信号量
信号量取值可以为0或者为正值,并且有两个操作down和up,一个减少该信号量一个增加该信号量,
使用信号量来解决消费者-生产者问题:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0Wem8ZKT-1642772099182)(D:\文章汇总\IT相关\计算机基础\现代操作系统图片\QQ截图20220120095800.png)]
10.调度
调度算法分类:非抢占式调度算法挑选一个进程,然后让该进程运行直至被阻塞或者直到该进程自动释放CPU。相反,抢占式
课后作业
有三种进程状态理论上有六种转换状态,但是只有四种,其他两种可以实现吗
阻塞态不能转换到运行态,它需要先出现有效的输入后转化为就绪态才能继续转化为运行态。就绪态也不能转为阻塞态。
中断功能不能轻易给用户使用
然后让该进程运行直至被阻塞或者直到该进程自动释放CPU。相反,抢占式
课后作业
有三种进程状态理论上有六种转换状态,但是只有四种,其他两种可以实现吗
阻塞态不能转换到运行态,它需要先出现有效的输入后转化为就绪态才能继续转化为运行态。就绪态也不能转为阻塞态。
中断功能不能轻易给用户使用
读现代操作系统第一二章笔记相关推荐
- mysql第一二章笔记_MYSQL必知必会读书笔记 第一章(基础)
1.1 什么是数据库 数据库(database)是一个以某种有组织的方式存储的数据集合. 保存有组织的数据的容器(通常是一个文件或一组文件) 注意:人们通常使用数据库来代表他们使用的数据库软件.其实这 ...
- 『RNN 监督序列标注』笔记-第一/二章 监督序列标注
『RNN 监督序列标注』笔记-第一/二章 监督序列标注 监督序列标注(Supervised Sequence Labeling)与传统的监督模式分类(supervised pattern classi ...
- 第一二章(PTA复习)
第一二章 因为3默认是整形,整形长度大于short型,如果让short型 = short型 + int型,可能会溢出,所以编译报错 例如: 答案:D switch 语句中的变量类型可以是: byte. ...
- 内存中有两个4字节以压缩的bcd_高中对口计算机微机原理04第一二章测验
原理第一.二章练习 一.选择题 1.下列四个不同进制的数中,数值最大的是__________ A. 1001001B B. 110 O C. 71D D. 4AH 2.下列四种不同数制表示的数值最小的 ...
- C++ Primer 学习笔记 第一,二章
2021年4月4日,我终于开始学习C++啦,下面的笔记会记录着我的心酸的学习历程,每个标题会记录着下面代码在<C++中文版 Primer>中的页码 P6 实现两数之和 # include ...
- 操作系统第七章笔记---进程同步
本文内容整理自西安交通大学软件学院田丽华老师的课件,仅供学习使用,请勿转载 操作系统系列笔记汇总:操作系统笔记及思维导图汇总附复习建议_Qlz的博客-CSDN博客 文章目录 文章目录 文章目录 思维导 ...
- GNU make 中文手册 第一二章 概述与介绍
一.第一章:概述 准备知识 在开始我们关于 make 的讨论之前,首先需要明确一些基本概念: 编译:把高级语言书写的代码,转换为机器可识别的机器指令.编译高级语言后生成的指令虽然可被机器识别,但是还不 ...
- 第一 二章 计算机基础知识,[精品]第二章-计算机基础知识.doc
[精品]第二章-计算机基础知识.doc (7页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 第二章计算机基础知识2.1将下列各二进制教转换 ...
- 操作系统第五章笔记---线程
本文内容整理自西安交通大学软件学院田丽华老师的课件,仅供学习使用,请勿转载 操作系统系列笔记汇总:操作系统笔记及思维导图汇总附复习建议_Qlz的博客-CSDN博客 文章目录 文章目录 文章目录 Ove ...
最新文章
- 应用心理学跨考计算机难不难,跨专业心理学考研难不难 主要学什么
- 从熵到交叉熵损失的直观通俗的解释
- 关于微机开操作票的研究22437
- html的meta用法
- Openstack的nova-network的vlan模式扩展
- 基于区块链的思考与创新应用实践
- 如何让apache支持php,Apache怎么才能支持PHP程序?
- 我是如何旅游 5 个月拿到 3 份 Offer 并收入翻倍的
- 第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(济南)(热身赛)
- Share:思科模拟器 路由配置(默认、静态、动态RIP)
- Unity3d - 打飞碟
- Deep Learning 学习笔记
- 【渝粤教育】广东开放大学 工程经济 形成性考核
- 初学者笔记:Scanf间隔符号的使用
- HDU 6194 string string string
- 通过硬盘iso文件安装ubuntu
- 通信原理第6章节-数字基带传输系统
- Qt程序打包发布方法(使用官方提供的windeployqt工具) 转自:http://tieba.baidu.com/p/3730103947?qq-pf-to=pcqq.group Qt 官方
- Android判断网络速度
- Centos7忘记密码