2

操作系统学习笔记

 2 years ago
source link: https://blog.csdn.net/hesorchen/article/details/123062013
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

操作系统学习笔记

hesorchen 已于 2022-02-22 10:41:02 修改 1810
分类专栏: # 操作系统 文章标签: 学习
专栏收录该内容
1 篇文章 0 订阅

操作系统(Operating System,OS) 是指控制和管理整个计算机系统的硬件和软件资源 ,并合理地组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境,它是计算机系统中最基本的系统软件。

计算机系统的层次结构

  1. 裸机(纯硬件):如CPU、内存、硬盘

  2. 应用程序:如QQ

小结

在这里插入图片描述

操作系统的四个特征

1. 并发

指两个或多个事件在同一时间间隔内发生。这些事件宏观上是同时发生的,但微观上是交替发生的(时间片)。

并行:指两个或多个事件在同一时刻内发生。

操作系统的并发性指计算机系统中同时存在着多个运行着的程序。一个单核处理机(CPU)同一时刻只能执行一个程序,因此操作系统会负责协调多个程序交替执行(这些程序微观上是交替执行的,但宏观上看起来就像在同时执行)

2. 共享

共享即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。

资源共享又分为:

  • 互斥共享:在同一时间段内只允许一个进程访问。
  • 同时共享:在同一时间段内可以有多个进程并发的访问。

3. 虚拟

虚拟是指把一个物理上的实体变为若千个逻辑上的对应物。物理实体(前者)是实际存在的,而逻辑上对应物(后者)是用户感受到的。

4. 异步

异步是指,在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。


请添加图片描述

发展与分类

一、手工操作阶段

人工在纸带上打孔,用计算机计算。

主要缺点:用户独占全机、人机速度矛盾导致资源利用率极低

二、批处理阶段——单道批处理系统

引入了外围机,加快了纸带传送速度。

主要优点:缓解了一定程度的人机速度矛盾,资源利用率有所提升。

主要缺点:内存中仅能有一道程序运行,只有该程序运行结束之后才
能调入下一道程序。CPU有大量的时间是在空闲等待I/O完成。资源利
用率依然很低。

三、批处理阶段——多道批处理系统

每次往内存中输入多道程序,操作系统正式诞生,并引入了中断技术,由操作系统负责管理这些程序的运行。各个程序并发执行。

主要优点:多道程序并发执行,共享计算机资源。资源利用率大幅提升,CPU和其他资源保持“忙碌”状态,系统吞吐量增大。

主要缺点:用户响应时间长,没有人机交互功能(用户提交自己的作业之后就只能等待计算机处理完成,中间不能控制自己的作业执行)

四、分时操作系统

计算机以时间片为单位轮流为各个用户/作业服务,各个用户可通过终端与计算机进行交互。

主要优点:用户请求可以被即时响应,解决了人机交互问题。允许多个用户同时使用一台计算机,并且用户对计算机的操作相互独立,感受不到别人的存在。

主要缺点:不能优先处理一些紧急任务。操作系统对各个用户/作业都是完全公平的,循环地为每个用户/作业服务一个时间片,不区分任务的紧急性。

五、实时操作系统:

主要优点:能够优先响应一些紧急任务,某些紧急任务不需时间片排队。
在实时操作系统的控制下,计算机系统接收到外部信号后及时进行处理,并且要在严格的时限内处理完事件。

实时操作系统的主要特点是及时性和可靠性。

小结

请添加图片描述

运行机制和体系结构

指令

特权指令:如内存清零

非特权指令:如加减乘除

两种处理器状态

用户态:只能执行非特权指令

核心态:能执行特权指令、非特权指令。

两种程序

内核程序:运行在核心态

普通应用程序:运行在用户态

操作系统的内核

内核是计算机.上配置的底层软件,是操作系统最基本、最核心的部分。
实现操作系统内核功能的那些程序就是内核程序。

请添加图片描述

两种体系结构:

请添加图片描述

中断和异常

  1. 当中断发生时,CPU立即进入核心态
  2. 当中断发生后,当前运行的进程暂停运行,并由操作系统内核对中断进行处理
  3. 对于不同的中断信号,会进行不同的处理发生了中断,就意味着需要操作系统介入,开展管理工作。由于操作系统的管理工作(比如进程切换、分配I/O设备等)需要使用特权指令,因此CPU要从用户态转为核心态。中断可以使CPU从用户态切换为核心态,使操作系统获得计算机的控制权。有了中断,才能实现多道程序并发执行。

用户态进入核心态只可以通过中断实现
核心态进入用户态通过一个特权指令,将程序状态字(PSW)的标志位设置为“用户态”

请添加图片描述

应用程序通过系统调用请求操作系统的服务。系统中的各种共享资源都由操作系统统一掌管,因此在用户程序中,凡是与资源有关的操作(如存储分配、I/O操作、文件管理等),都必须通过系统调用的方式向操作系统提出服务请求,由操作系统代为完成。这样可以保证系统的稳定性和安全性,防止用户进行非法操作。

请添加图片描述

程序:一个指令序列

程序段、数据段、PCB三部分组成了进程实体(进程映像)。一般情况下,我们把进程实体就简称为进程,例如,所谓创建进程,实质上是创建进程实体中的PCB;而撤销进程,实质上是撤销进程实体中的PCB。

进程控制块PCB:用来保存操作系统所需的数据
程序段:程序的代码
数据段:程序运行过程中处理的数据

注意:PCB是进程存在的唯一标志!

从不同的角度,进程可以有不同的定义,比较传统典型的定义有:

  1. 进程是程序的一次执行过程。
  2. 进程是一个程序及其数据在处理机上顺序执行时所发生的活动。
  3. 进程是具有独立功能的程序在数据集合.上运行的过程,它是系统进行资源分配和调度的一个独立单位。

各种定义都强调了进程的动态性

进程间的组织

在这里插入图片描述

进程的特征

在这里插入图片描述

进程的状态

  1. 运行态:占有CPU,并正在CPU上运行。(单核处理机中,每一时刻最多只有一个进程处于运行态)

  2. 就绪态:已经具备了运行的条件,但是CPU未空闲,暂时不能运行。

  3. 阻塞态:正在等待某一资源。(因为CPU是计算机中最昂贵的部件,为了提高CPU的利用率,需要先将其他进程需要的资源分配到位,才能得到CPU的服务)

还有另外两种状态:

  • 创建态:操作系统为进程分配资源、初始化PCB
  • 终止态:操作系统回收进程拥有的资源、撤销PCB

进程间状态转化
在这里插入图片描述

进程控制:实现进程状态转换。
用原语实现进程控制。原语的特点是执行期间不允许中断,只能一气呵成。这种不可被中断的操作即为原子操作。

原语采用“关中断指令”和“开中断指令”实现。

关中断指令之后,会暂时忽略中断信号:

在这里插入图片描述

学习技巧:进程控制会导致进程状态的转换。无论哪个原语,要做的无非三类事情:

  1. 更新PCB中的信息(如修改进程状态标志、将运行环境保存到PCB、从PCB恢复运行环境)
    a.所有的进程控制原语一定都会修改进程状态标志
    b.剥夺当前运行进程的CPU使用权必然需要保存其运行环境
    c.某进程开始运行前必然要恢复期运行环境
  2. 将PCB插入合适的队列
  3. 分配/回收资源

进程间的通信

在这里插入图片描述

有的进程可能需要“同时”做很多事,而传统的进程只能串行地执行一系列程序。为此,引入了“线程”,来增加并发度。

在这里插入图片描述

处理机调度

在这里插入图片描述

调度算法的评价指标

在这里插入图片描述

FCFS、SJF、HRRN调度算法

在这里插入图片描述

时间片轮转、优先级、多级反馈队列调度算法

在这里插入图片描述

进程的同步与互斥

在这里插入图片描述

进程互斥的软件实现方法

一、单标志检查法

在这里插入图片描述

二、双标志先检查法

在这里插入图片描述

三、双标志后检查法

在这里插入图片描述

四、peterson算法

在这里插入图片描述

在这里插入图片描述

进程互斥的硬件实现方法

一、中断屏蔽方法

使用开关中断实现。

二、TestAndSetLock

在这里插入图片描述

三、Swap指令

在这里插入图片描述

在这里插入图片描述

信号量机制

信号量其实就是一个变量(可以是一个整数,也可以是更复杂的记录型变量),可以用一个信号量来表示系统中某种资源的数量,比如:系统中只有一台打印机,就可以设置一个初值为1的信号量。

原语是一种特殊的程序段,其执行只能一气呵成,不可被中断。原语是由关中断/开中断指令实现的。软件解决方案的主要问题是由“进入区的各种操作无法一气呵成”,因此如果能把进入区、退出区的操作都用“原语”实现,使这些操作能“一气呵成”就能避免问题。

一对原语:wait(S)原语和signal(S)原语,可以把原语理解为我们自己写的函数,函数名分别为wait和signal,括号里的信号量S其实就是函数调用时传入的一个参数。wait和signal也常写作P、V操作。

在这里插入图片描述

用信号量实现进程互斥、同步、前驱关系

在这里插入图片描述

生产者消费者问题

在这里插入图片描述

读者写者问题

在这里插入图片描述

哲学家进餐问题

在这里插入图片描述

类似于封装好的类,只需调用接口实现进程的同步、互斥。

在这里插入图片描述

生产者消费者问题管程解决方法:

在这里插入图片描述

在这里插入图片描述

要预防死锁,只需破坏死锁产生的必要条件。

在这里插入图片描述

银行家算法

在这里插入图片描述

死锁的检测和接触

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

覆盖技术与交换技术

在这里插入图片描述

连续分配管理方式

在这里插入图片描述

动态分区分配算法

在这里插入图片描述

基本分页存储管理的基本概念

页框:将内存空间分为一个个大小相等的分区
页面:将进程的地址空间分为一个个和页框大小相等的分区

最终将页面离散的放入到页框中。

页表:为了知道进程的每个页面在内存中的物理地址,操作系统为每个进程建立一张页表。

页表也存放在页框中。

在这里插入图片描述

在这里插入图片描述

基本地址变换机构

页号 = 逻辑地址 / 页框大小

页内偏移量 = 逻辑地址 % 页框大小

根据页号在页表中查找实际的块号:页表起始地址(存放在页表寄存器中) + 页号 * 页表项大小

物理地址 = 块号 * 页框大小 + 页内偏移量

在这里插入图片描述

局部性原理

在这里插入图片描述

具有快表的地址变换机构

快表存放在高速的存储器中,根据局部性原理,将最近查询的页表项放在块表中。

在这里插入图片描述

在这里插入图片描述

基本分段存储管理方式

在这里插入图片描述

段页式存储管理方式

在这里插入图片描述
在这里插入图片描述

虚拟内存的基本概念

在这里插入图片描述

请求分页管理方式

在这里插入图片描述

页面置换算法

最佳置换算法OPT

该算法预判了以后要访问的页面情况,而这是无法准确预知的,因此该算法实际上无法实现。

在这里插入图片描述

先进先出置换算法FIFO

在这里插入图片描述

最近最久未使用LRU

在这里插入图片描述

时钟置换算法CLOCK

在这里插入图片描述

改进型时钟置换算法

在这里插入图片描述

页面分配、置换策略

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

文件的逻辑结构

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

文件的物理结构

类似于内存分页,磁盘中的存储单元也会被分为一个个“块/磁盘块/物理块”。很多操作系统中,磁盘块的大小与内存块、页面的大小相同。

在这里插入图片描述

在这里插入图片描述

文件存储空间管理

在这里插入图片描述

文件的基本操作

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

文件系统的层次结构

在这里插入图片描述

磁盘的结构

在这里插入图片描述

磁盘调度算法

在这里插入图片描述

减少磁盘延迟时间的方法

在这里插入图片描述

磁盘的管理

在这里插入图片描述

I/O设备

I/O设备的概念

I/O设备: 计算机与外界的信息交互的载体。鼠标,键盘,磁盘,声卡,网卡等都属于I/O设备

在这里插入图片描述

I/O控制器

在这里插入图片描述

I/O控制方式

在这里插入图片描述

I/O软件层次结构

在这里插入图片描述

I/O核心子系统

在这里插入图片描述

假脱机技术(SPOOLING技术)

在这里插入图片描述

设备的分配与回收

在这里插入图片描述

缓冲区管理

在这里插入图片描述

  1. 王道考研 操作系统

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK