第一章

os为用户提供一个更好、更清晰、更简单的计算机模型。

大多数的计算机有两种运行模式:内核态和用户态。软件中最基础的部分是操作系统,它运行在内核态中,在这个模式中,os具有对所有的硬件的完全访问权。

处理器

cpu是计算机的大脑,它从内存中取出指令并执行。一些对程序员可见的专用寄存器:程序计数器(保存了将要取出的下一条指令的内存地址)、堆栈指针(它指向内存中当前栈的顶端,该栈包含了每个执行过程的栈帧,保存了有关的输入参数,局部变量以及临时变量)、程序状态字(CPU优先级、模式)

改善性能的方法

  1. 流水线
  2. 超标量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)]

操作系统结构

课后习题

  1. 操作系统两大作用

    提供用户抽象以及管理计算机资源

  2. 列举每种操作系统的作用

    大型机:一些大型公司的数据中心可见;服务器:工作站;多处理器操作系统:将多个CPU连成单个操作系统;个人计算机操作系统:windows、linux;嵌入式操作系统:微波炉、电视机、汽车

  3. 分时系统和多道程序系统的区别是什么?

​ 多道程序系统是将内存分为几个部分,当一个作业等待IO操作完成时,另一个作业可以使用CPU,如果内存中存放足够多的作业则CPU利用率可以达到接近100%;分时系统实际上是多道程序系统的一个变体。每个用户都有一个终端,多个作业轮流执行。云计算的概念:相对小型的计算机连接到巨大的远程数据中心服务器,本地计算机处理用户界面,而服务器进行计算

  1. 为了使用高速缓存,主存被划分为若干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.进程的状态

  1. 运行态(该时刻进程实际占用CPU)
  2. 就绪态(可以运行,即如果有空闲的CPU分配给它,它便能运行,但是目前尚未有空闲的CPU)
  3. 阻塞态(除非某种外部事件发生不然进程不能运行,比如说等待用户输入,必须有用户输入了才能继续运行)

6.进程的实现

为了实现进程模型,操作系统维护着一张表格(即进程表)每个进程占用一个进程表项:包括程序计数器、堆栈指针、内存分配状况、所打开的文件状态

7.线程

线程产生的原因:许多应用中同时发生着多种活动,其中某些活动随着时间的推移会被阻塞,通过将应用程序分解成可以准并行的多个顺序线程,程序设计会变得简单;线程比进程更轻量级,所以更容易创建也更容易撤销。进程就是用某种方法把相关的资源集中在一起。进程有存放程序正文和数据以及其他资源的地址空间,进程拥有一个执行的线程,通常简写为线程。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cwBaqhjC-1642772099182)(D:\文章汇总\IT相关\计算机基础\现代操作系统图片\QQ截图20220118092632.png)]

8.进程间的通信(IPC)

主要考虑三个问题:(1)一个进程如何把信息传递给另一个(2)确保两个或多个进程在关键活动中不会出现交叉(3)正确的顺序。(2)、(3)的问题同样适用于线程

1.竞争条件

多个进程读写某些共享数据,而最后的结果取决于进程运行的精确时许,称为竞争条件。

2.临界区

在某些时候进程可能会访问共享内存或共享文件,或执行其他一些会导致竞争的操作,把对共享内存进行访问的程序片段称为临界区域或临界区,使得两个进程不可能同时访问临界区,就能避免竞争条件。

几种实现手段:

  1. 屏蔽中断

最简单的方法是使每个进程在刚刚进入临界区后立即屏蔽所有中断,并在就要离开之前再打开中断,CPU只有在发生中断或其他中断时才会进行线程的切换,这样,屏蔽中断后CPU将不会被切换到其他进程。缺点:中断的功能交给用户不合适;多核芯片数量越来越多需要更加复杂的计划。

  1. 锁变量

    可能会发生和假脱机目录一样的问题

  2. 严格轮换法

    轮流进入临界区,但是当一个进程比另一个进程慢很多时可能会出现忙等待

  3. Peterson解法

  4. 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。相反,抢占式

课后作业

  1. 有三种进程状态理论上有六种转换状态,但是只有四种,其他两种可以实现吗

    阻塞态不能转换到运行态,它需要先出现有效的输入后转化为就绪态才能继续转化为运行态。就绪态也不能转为阻塞态。

  2. 中断功能不能轻易给用户使用
    然后让该进程运行直至被阻塞或者直到该进程自动释放CPU。相反,抢占式

课后作业

  1. 有三种进程状态理论上有六种转换状态,但是只有四种,其他两种可以实现吗

    阻塞态不能转换到运行态,它需要先出现有效的输入后转化为就绪态才能继续转化为运行态。就绪态也不能转为阻塞态。

  2. 中断功能不能轻易给用户使用

读现代操作系统第一二章笔记相关推荐

  1. mysql第一二章笔记_MYSQL必知必会读书笔记 第一章(基础)

    1.1 什么是数据库 数据库(database)是一个以某种有组织的方式存储的数据集合. 保存有组织的数据的容器(通常是一个文件或一组文件) 注意:人们通常使用数据库来代表他们使用的数据库软件.其实这 ...

  2. 『RNN 监督序列标注』笔记-第一/二章 监督序列标注

    『RNN 监督序列标注』笔记-第一/二章 监督序列标注 监督序列标注(Supervised Sequence Labeling)与传统的监督模式分类(supervised pattern classi ...

  3. 第一二章(PTA复习)

    第一二章 因为3默认是整形,整形长度大于short型,如果让short型 = short型 + int型,可能会溢出,所以编译报错 例如: 答案:D switch 语句中的变量类型可以是: byte. ...

  4. 内存中有两个4字节以压缩的bcd_高中对口计算机微机原理04第一二章测验

    原理第一.二章练习 一.选择题 1.下列四个不同进制的数中,数值最大的是__________ A. 1001001B B. 110 O C. 71D D. 4AH 2.下列四种不同数制表示的数值最小的 ...

  5. C++ Primer 学习笔记 第一,二章

    2021年4月4日,我终于开始学习C++啦,下面的笔记会记录着我的心酸的学习历程,每个标题会记录着下面代码在<C++中文版 Primer>中的页码 P6 实现两数之和 # include ...

  6. 操作系统第七章笔记---进程同步

    本文内容整理自西安交通大学软件学院田丽华老师的课件,仅供学习使用,请勿转载 操作系统系列笔记汇总:操作系统笔记及思维导图汇总附复习建议_Qlz的博客-CSDN博客 文章目录 文章目录 文章目录 思维导 ...

  7. GNU make 中文手册 第一二章 概述与介绍

    一.第一章:概述 准备知识 在开始我们关于 make 的讨论之前,首先需要明确一些基本概念: 编译:把高级语言书写的代码,转换为机器可识别的机器指令.编译高级语言后生成的指令虽然可被机器识别,但是还不 ...

  8. 第一 二章 计算机基础知识,[精品]第二章-计算机基础知识.doc

    [精品]第二章-计算机基础知识.doc (7页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 第二章计算机基础知识2.1将下列各二进制教转换 ...

  9. 操作系统第五章笔记---线程

    本文内容整理自西安交通大学软件学院田丽华老师的课件,仅供学习使用,请勿转载 操作系统系列笔记汇总:操作系统笔记及思维导图汇总附复习建议_Qlz的博客-CSDN博客 文章目录 文章目录 文章目录 Ove ...

最新文章

  1. 应用心理学跨考计算机难不难,跨专业心理学考研难不难 主要学什么
  2. 从熵到交叉熵损失的直观通俗的解释
  3. 关于微机开操作票的研究22437
  4. html的meta用法
  5. Openstack的nova-network的vlan模式扩展
  6. 基于区块链的思考与创新应用实践
  7. 如何让apache支持php,Apache怎么才能支持PHP程序?
  8. 我是如何旅游 5 个月拿到 3 份 Offer 并收入翻倍的
  9. 第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(济南)(热身赛)
  10. Share:思科模拟器 路由配置(默认、静态、动态RIP)
  11. Unity3d - 打飞碟
  12. Deep Learning 学习笔记
  13. 【渝粤教育】广东开放大学 工程经济 形成性考核
  14. 初学者笔记:Scanf间隔符号的使用
  15. HDU 6194 string string string
  16. 通过硬盘iso文件安装ubuntu
  17. 通信原理第6章节-数字基带传输系统
  18. Qt程序打包发布方法(使用官方提供的windeployqt工具) 转自:http://tieba.baidu.com/p/3730103947?qq-pf-to=pcqq.group Qt 官方
  19. Android判断网络速度
  20. Centos7忘记密码

热门文章

  1. 【二叉树】完美二叉树
  2. QUANT[10]量化交易——因子暴露度,因子收益与模型
  3. [HLS] dataflow
  4. 【Laravel框架】对于Laravel框架架构的研究以及视图方法和内置会话在项目里的运用
  5. 【新鲜出炉】腾讯云拿下新一代智慧校园项目,中台是建设重点
  6. 观察者模式ApplicationListener异步处理事件
  7. mysql dbi dbd_安装DBI和DBD包
  8. Ubuntu14安装配置samba共享功能
  9. 用Python爬取需要登录的网站
  10. 动态规划系列 之 股票相关问题 (C语言刷leetcode)