操作系统学习笔记(精简)

操作系统学习笔记(精简)


1.操作系统的目标是:

1.方便性、2.有效性、3.可扩充性、4.开放性

2.操作系统的功能:

1.处理器管理、2.存储管理、3.设备管理、4.作业管理、5.文件管理

3.操作系统管理的资源:

1.处理机、2.存储器、3.I/O设备、4.文件

4.多道程序设计的基本特点:

特点:表现为并发执行—>什么是并发执行与并行有什么不一样

回答:

并发执行(Concurrency):

  1. 并发是指一个系统同时处理多个任务的能力。
  2. 这并不意味着同时执行多个任务的每个步骤,而是系统在一段时间内交替执行这些任务,以提高整体的效率。
  3. 在并发中,任务之间可能会有时间上的重叠,但它们不一定同时进行。

两者区别

  1. 并发是一种更宽泛的概念,指系统同时处理多个任务的能力,是指两个或多个事件在同一时间间隔内发生,而这些任务可能在时间上交替执行。
  2. 并行则是一种更具体的情况,指系统真正同时执行多个任务的能力,是指两个或多个事件在同一时刻发生,每个任务在独立的处理单元上运行,没有时间上的交替。
  3. 并发性是指在宏观上有多个程序同时运行,但在单处理机系统中每一时刻只能有一道程序执行,所以微观上只能是分时交替执行。
5.进程调度问题:

1)调度算法分类

1.先来先服务(FCFS):按照作业/进程进入系统先后顺序进行调度,不利于短作业和I/O繁忙型。

2.短作业优先(SJF):执行时间最短优先调度,对长作业优先非常不利,且必须先知道作业/进程运行时间,人机无法实现交互,且没有考虑紧迫程度,不能保证及时处理。

3.优先级调度算法(PSA):按照作业优先级进行调度,优先权可以是静态或动态,可以进行考虑进程类型、紧迫程度、资源需求等因素。该算法可以满足紧迫作业需求,但可能导致优先权低的作业饥饿。

4.高响应比优先调度算法(HRRN):该算法综合了先来先服务和短作业优先的特点,既照顾了短作业,又考虑了作业/进程到达顺序,不会使长作业长期得不到服务。

5.时间片轮转(RR):轮转采取了非常公平的处理机分配方式,让就绪队列上的每个进程每次仅运行一个时间片,该算法适用于分时系统,但需要合理分配时间片大小。

2)周转时间,平均周转时间,带权周转时间

1.周转时间(Turnaround Time):

周转时间是指一个进程从进入系统开始执行到完成的总时间。
具体计算方法为:周转时间 = 完成时间 - 到达时间。

2.带权周转时间(Weighted Turnaround Time):

带权周转时间是周转时间与进程的权重(通常是优先级)的乘积。
具体计算方法为:带权周转时间 = 周转时间 * 进程权重。

3.平均周转时间(Average Turnaround Time):

平均周转时间是所有进程的周转时间的平均值。
具体计算方法为:平均周转时间 = (进程1的周转时间 + 进程2的周转时间 + … + 进程n的周转时间) / 进程数。

3)p1、p2进程同时到达与不同时到达

根据调度算法对进程到达时间,有如下可能:

先来先服务(FCFS):按照进程到达的先后顺序进行服务。如果P1比P2先到达,那么P1将首先被服务,然后是P2。

短作业优先(SJF):选择运行时间最短的进程进行服务。如果P1和P2同时到达,但P2的运行时间更短,那么P2将首先被服务。如果P1先到达,但P2的运行时间更短,那么在非抢占式SJF中,P1将首先被服务,然后是P2。

最短剩余时间优先(SRTN):这是SJF的抢占版本。如果P1正在运行,但新到达的P2的运行时间更短,那么P2将抢占CPU。

最高响应比优先(HRRN):在每次调度时先计算各个进程的响应比,选择响应比最高的进程进行服务。响应比的计算公式为:响应比 = (等待时间 + 要求服务时间) / 要求服务时间。这种算法综合考虑了进程的等待时间和要求服务的时间。

​ 以上是一些基本的调度算法,实际的操作系统可能会使用更复杂的调度策略,这些策略可能会根据多种因素(如进程优先级、I/O请求、系统负载等)动态调整进程的执行顺序。因此,P1和P2的到达时间以及它们之间的时间间隔可能会影响它们被调度的顺序和时间。

6.分时操作系统和实时操作系统:

适用场景:

分时操作系统:1.个人计算机;2.服务器和数据中心;3.多媒体应用

实时操作系统:1.工业(武器)控制系统;2.信息查询系统;3.多媒体系统;4.嵌入式系统

其他:

分时操作系统是基于时间片轮转调度方式,且作业直接进入内存中

两者都具有的特征:1.多路性;2.独立性;3.及时性;4.交互性;5.可靠性

实时操作系统:要求系统高度可靠,具有多级中断机制,且具有多级容错措施保障系统安全性以及数据安全

7.时间片大小影响:

时间片大小对系统性能有很大影响:

时间片小:有利于短作业,较小的时间片可以使系统对交互请求的响应时间变短,从而提高用户体验。但是也意味着会频繁执行进程调度和进程上下文的切换,无疑会增加系统开销

时间片大:每个进程一旦得到运行,就可以运行更长的时间,这样可以减少进程切换的次数,从而提高CPU的效率。但是,较大的时间片可能会使得对短的交互请求的响应时间变长,从而降低用户体验。

8.内核态和用户态:

用户态切换内核态:1.系统调用;2.异常;3.外围设备的中断

一文带你从根上理解用户态与内核态 - 知乎

用户态:当进程在执行用户自己的代码时,则称其处于用户运行态。

内核态:当一个任务执行系统调用而陷入内核代码中执行时,我们就称进程处于内核运行态,此时处理器处于特权级最高的内核代码中执行。

9.死锁

死锁的定义:如果一组进程中的每一个进程都在等待仅由该组进程中的其他进程才能引发的事件,那么该组进程就是死锁的

死锁产生的四个必要条件:1.互斥条件;2.请求和保持条件;3.不可抢占条件;4.循环等待条件

哲学家进餐问题中如何避免死锁

1.至多只允许四位哲学家同时去拿左边筷子

2.仅当哲学家的左右筷子均可用时,才允许进餐

3.规定奇数号哲学家先拿他左边的筷子,然后再拿右边的筷子;而偶数号哲学家则相反。

10.死锁破坏条件

互斥条件:不可改变。

请求和保持条件:可以一次性给线程申请所有的资源。/允许一个进程获得初期资源后便开始允许。

不可抢占条件:线程在申请不到资源时主动释放掉已有的资源。

循环等待条件:将资源线性排列,申请时先申请序号小的,再申请序号大的。

11.银行家算法
12.如何避免死锁

资源的合理分配

13.页式内存管理

变换过程(无快表)
在这里插入图片描述

变换过程(有快表)

在这里插入图片描述

14.动态分区算法

1.首次适应算法:从链首按顺序查找,找到大小满足的内存空间,然后划分内存空间;如果没有则分配失败;会增加碎片

2.循环首次适应算法:从上次找到的满足的空闲分区开始查找,知道找到一个大小满足的内存空间,然后划分;使空闲分区分布均匀,减少查找分区开销,但是会导致缺乏大的空闲分区

3.最佳适应算法:总是把满足要求、又最小的空闲分区分配给作业;会留下许多难以利用的碎片

4.最坏适应算法:与最佳相反,查找效率高,产生碎片可能性最小

15.多级页表

多级页表优势:

1.可以离散存储页表。

2.在某种意义上节省页表内存空间。

多级页表劣势:

增加寻址次数,从而延长访存时间。

16.置换算法

LRU和FIFO算法,多少次缺页,缺页中断是什么

17.I/O控制方式

1.使用轮询的可编程I/O方式: 适用于对实时性要求不高的简单应用场景,例如低速设备或不需要大量数据传输的情况。

2.使用中断的可编程I/O方式:适用于需要实时响应和高吞吐量的场景,例如高速数据传输或需要即时处理的实时系统。

3.直接存储器访问方式: 适用于大量数据传输的场景,例如高速网络通信、大容量文件传输等,可以减轻CPU的负担,提高数据传输效率。

4.I/O通道控制方式:适用于复杂的I/O任务,可以同时处理多个I/O设备,提高系统整体的并行处理能力,例如大型数据处理系统。

18.段页式于页段式

段页式存储:

工作原理: 将内存划分为若干个不同大小的段,每个段可以包含一个逻辑单元,例如程序、数据等。每个段再被划分为固定大小的页。通过将逻辑地址映射到段表和页表,实现逻辑地址到物理地址的映射。
优势: 具有较好的灵活性,适用于不同大小的数据和程序段。能够提供更好的地址空间管理,支持动态扩展和收缩。
适用场景: 适用于多道程序设计环境,能够有效管理多个不同大小的程序和数据。

页段式存储:

工作原理: 将内存划分为固定大小的页和不同大小的段,每个页表项中包含段的信息。逻辑地址首先映射到段表,然后再通过段表中的信息映射到页表,最终得到物理地址。
优势: 简化了地址映射过程,可以提高地址转换的速度,减少复杂性。
适用场景: 适用于对地址映射速度有较高要求的场景,例如实时系统等。

  • 17
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值