操作系统学习笔记

Posted hesorchen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了操作系统学习笔记相关的知识,希望对你有一定的参考价值。

目录

操作系统

定义

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

计算机系统的层次结构

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

  2. 操作系统

  3. 应用程序:如QQ

  4. 用户

小结

操作系统的四个特征

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. 王道考研 操作系统

以上是关于操作系统学习笔记的主要内容,如果未能解决你的问题,请参考以下文章

《从零開始学Swift》学习笔记(Day48)——类型检查与转换

ELK学习笔记安装ElasticsearchKibanaLogstash和X-Pack

Swift学习笔记-类型转换

Swift学习笔记-类型转换

2016年4月3日_JAVA学习笔记

javascript学习笔记整理(事件)