操作系统学习笔记
Posted hesorchen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了操作系统学习笔记相关的知识,希望对你有一定的参考价值。
目录
操作系统
定义
操作系统(Operating System,OS) 是指控制和管理整个计算机系统的硬件和软件资源 ,并合理地组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境,它是计算机系统中最基本的系统软件。
计算机系统的层次结构
-
裸机(纯硬件):如CPU、内存、硬盘
-
操作系统
-
应用程序:如QQ
-
用户
小结
操作系统的四个特征
1. 并发
指两个或多个事件在同一时间间隔内发生。这些事件宏观上是同时发生的,但微观上是交替发生的(时间片)。
并行:指两个或多个事件在同一时刻内发生。
操作系统的并发性指计算机系统中同时存在着多个运行着的程序。一个单核处理机(CPU)同一时刻只能执行一个程序,因此操作系统会负责协调多个程序交替执行(这些程序微观上是交替执行的,但宏观上看起来就像在同时执行)
2. 共享
共享即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。
资源共享又分为:
- 互斥共享:在同一时间段内只允许一个进程访问。
- 同时共享:在同一时间段内可以有多个进程并发的访问。
3. 虚拟
虚拟是指把一个物理上的实体变为若千个逻辑上的对应物。物理实体(前者)是实际存在的,而逻辑上对应物(后者)是用户感受到的。
4. 异步
异步是指,在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。
发展与分类
一、手工操作阶段
人工在纸带上打孔,用计算机计算。
主要缺点:用户独占全机、人机速度矛盾导致资源利用率极低
二、批处理阶段——单道批处理系统
引入了外围机,加快了纸带传送速度。
主要优点:缓解了一定程度的人机速度矛盾,资源利用率有所提升。
主要缺点:内存中仅能有一道程序运行,只有该程序运行结束之后才
能调入下一道程序。CPU有大量的时间是在空闲等待I/O完成。资源利
用率依然很低。
三、批处理阶段——多道批处理系统
每次往内存中输入多道程序,操作系统正式诞生,并引入了中断技术,由操作系统负责管理这些程序的运行。各个程序并发执行。
主要优点:多道程序并发执行,共享计算机资源。资源利用率大幅提升,CPU和其他资源保持“忙碌”状态,系统吞吐量增大。
主要缺点:用户响应时间长,没有人机交互功能(用户提交自己的作业之后就只能等待计算机处理完成,中间不能控制自己的作业执行)
四、分时操作系统
计算机以时间片为单位轮流为各个用户/作业服务,各个用户可通过终端与计算机进行交互。
主要优点:用户请求可以被即时响应,解决了人机交互问题。允许多个用户同时使用一台计算机,并且用户对计算机的操作相互独立,感受不到别人的存在。
主要缺点:不能优先处理一些紧急任务。操作系统对各个用户/作业都是完全公平的,循环地为每个用户/作业服务一个时间片,不区分任务的紧急性。
五、实时操作系统:
主要优点:能够优先响应一些紧急任务,某些紧急任务不需时间片排队。
在实时操作系统的控制下,计算机系统接收到外部信号后及时进行处理,并且要在严格的时限内处理完事件。
实时操作系统的主要特点是及时性和可靠性。
小结
运行机制和体系结构
指令
特权指令:如内存清零
非特权指令:如加减乘除
两种处理器状态
用户态:只能执行非特权指令
核心态:能执行特权指令、非特权指令。
两种程序
内核程序:运行在核心态
普通应用程序:运行在用户态
操作系统的内核
内核是计算机.上配置的底层软件,是操作系统最基本、最核心的部分。
实现操作系统内核功能的那些程序就是内核程序。
两种体系结构:
中断和异常
- 当中断发生时,CPU立即进入核心态
- 当中断发生后,当前运行的进程暂停运行,并由操作系统内核对中断进行处理
- 对于不同的中断信号,会进行不同的处理发生了中断,就意味着需要操作系统介入,开展管理工作。由于操作系统的管理工作(比如进程切换、分配I/O设备等)需要使用特权指令,因此CPU要从用户态转为核心态。中断可以使CPU从用户态切换为核心态,使操作系统获得计算机的控制权。有了中断,才能实现多道程序并发执行。
用户态进入核心态只可以通过中断实现
核心态进入用户态通过一个特权指令,将程序状态字(PSW)的标志位设置为“用户态”
系统调用
应用程序通过系统调用请求操作系统的服务。系统中的各种共享资源都由操作系统统一掌管,因此在用户程序中,凡是与资源有关的操作(如存储分配、I/O操作、文件管理等),都必须通过系统调用的方式向操作系统提出服务请求,由操作系统代为完成。这样可以保证系统的稳定性和安全性,防止用户进行非法操作。
进程
定义
程序:一个指令序列
程序段、数据段、PCB三部分组成了进程实体(进程映像)。一般情况下,我们把进程实体就简称为进程,例如,所谓创建进程,实质上是创建进程实体中的PCB;而撤销进程,实质上是撤销进程实体中的PCB。
进程控制块PCB:用来保存操作系统所需的数据
程序段:程序的代码
数据段:程序运行过程中处理的数据
注意:PCB是进程存在的唯一标志!
从不同的角度,进程可以有不同的定义,比较传统典型的定义有:
- 进程是程序的一次执行过程。
- 进程是一个程序及其数据在处理机上顺序执行时所发生的活动。
- 进程是具有独立功能的程序在数据集合.上运行的过程,它是系统进行资源分配和调度的一个独立单位。
各种定义都强调了进程的动态性。
进程间的组织
进程的特征
进程的状态
-
运行态:占有CPU,并正在CPU上运行。(单核处理机中,每一时刻最多只有一个进程处于运行态)
-
就绪态:已经具备了运行的条件,但是CPU未空闲,暂时不能运行。
-
阻塞态:正在等待某一资源。(因为CPU是计算机中最昂贵的部件,为了提高CPU的利用率,需要先将其他进程需要的资源分配到位,才能得到CPU的服务)
还有另外两种状态:
- 创建态:操作系统为进程分配资源、初始化PCB
- 终止态:操作系统回收进程拥有的资源、撤销PCB
进程间状态转化
进程控制
进程控制:实现进程状态转换。
用原语实现进程控制。原语的特点是执行期间不允许中断,只能一气呵成。这种不可被中断的操作即为原子操作。
原语采用“关中断指令”和“开中断指令”实现。
关中断指令之后,会暂时忽略中断信号:
学习技巧:进程控制会导致进程状态的转换。无论哪个原语,要做的无非三类事情:
- 更新PCB中的信息(如修改进程状态标志、将运行环境保存到PCB、从PCB恢复运行环境)
a.所有的进程控制原语一定都会修改进程状态标志
b.剥夺当前运行进程的CPU使用权必然需要保存其运行环境
c.某进程开始运行前必然要恢复期运行环境 - 将PCB插入合适的队列
- 分配/回收资源
进程间的通信
线程
有的进程可能需要“同时”做很多事,而传统的进程只能串行地执行一系列程序。为此,引入了“线程”,来增加并发度。
处理机调度
调度算法的评价指标
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技术)
设备的分配与回收
缓冲区管理
参考资料
以上是关于操作系统学习笔记的主要内容,如果未能解决你的问题,请参考以下文章
《从零開始学Swift》学习笔记(Day48)——类型检查与转换