读现代操作系统第一二章笔记

第一章

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. 中断功能不能轻易给用户使用

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值