目录
操作系统
操作系统定义:有效组织和管理系统中的各种软/硬件资源,合理地组织计算机系统工作流程,控制程序的执行,并且向用户提供一个良好的工作环境和友好的接口。
操作系统有两个重要作用
-
通过资源管理提高计算机系统的效率
-
改善人机界面向用户提供友好的工作环境
4个特征:并发性、共享性、虚拟性和不确定性
并发性,CPU可以运行多个应用程序,共享性,两个程序都可以访问计算机内的一份文件。虚拟性,类似于可以虚拟打印机,自己也可以对这个打印机操作。计算机二进制0,1无法对现实的某些数据精确表达。
操作系统的功能:
-
进程管理
-
存储管理
-
文件管理
-
作业管理
-
设备管理
计算机硬件——>操作系统——>语言处理程序——>应用程序
操作系统的分类
-
批处理操作系统:单道批处理和多道批处理(主机与外设可并行)
-
分时操作系统:一个计算机系统与多个终端设备连接。将CPU的工作时间划分为许多很短的时间片,轮流为各个终端的用户服务
-
实时操作系统:实时是指计算机对于外来信息能够以足够快的速度进行处理并在被控对象允许的时间范围内做出快速反应。实时系统对交互能力要求不高但要求可靠性有保障。
-
网络操作系统:是使联网计算机能方便而有效地共享网络资源,为网络用户提供各种服务的软件和有关协议的集合。三种模式:集中模式、客户 端/服务器模式、对等模式。
-
分布式操作系统:分布式计算机系统是由多个分散的计算机经连接而成的计算机系统,系统中的计算机无主、次之分,任意两台计算机可以通过通信交换信息。
-
微型计算机操作系统:简称微机操作系统,常用的有Windows、Macos、Linux
进程管理
进程:程序运行的过程,它是系统进行资源分配和调度的一个独立单位。它由进程控制块(PCB)和数据块三部分组成。
PCB:是进程存在的唯一标志。内容包含进程标识符、状态、位置信控制信息、队列指针(链接同一状态的进程)、优先级、现场保护区等;
进程和程序的区别:进程是程序的一次执行过程,没有程序就没有进程,程序是一个静态的概念,而进程是一个动态的概念,他由创建而产生,完成任务后因撤销而消亡;进程是系统进行资源分配和调度的独立单位,而程序不是。
进程管理:实质上是对处理机的执行“时间“进行管理,采用多道程序等技术将CPU的时间合理地分配给每个任务,主要包括进程控制、进程同步、进程通信和进程调度。
进程两个基本属性:可拥有资源的独立单位;可独立调度和分配资源的基本单位。
线程不共享的东西:两器一栈 程序计数器,寄存器,栈
共享:内存地址空间、代码、数据、文件等。
CPU对进程进行调度,分别有三个状态(就绪、阻塞、运行)
同步与互斥
-
临界资源:各进程间需要以互斥方式对其进行访问的资源(厕所只能一个人在里面蹲坑,蹲完再下一个蹲蹲)
-
临界区:指进程中对临界资源实施操作的那段程序。本质是一段程序代码
-
互斥:某资源在同一时间只能由一个任务单独使用,使用时需要加锁,使用完后解锁才能被其他任务使用;如打印机。
-
同步:多个任务可以并发执行,只不过速度上有差异,在一定情况下停下等待,不存在资源是否单独或共享问题,如自行车和汽车。(两个人约会,男生先到了会等女生到了再一起甜蜜蜜)
-
互斥信号量:对临界资源采用互斥访问,使用互斥信号量后其他进程无法访问,初始值为1。(给门上锁,锁头是电子的上面显示个1表示厕所没人)
-
同步信号量:对共享资源的访问控制,初值一般是共享资源的数量
PV操作
p是把资源放到阻塞进程,v是从阻塞进程中唤醒一个进程。
对于阻塞进程来说p减v增
死锁
进程管理是操作系统的核心,但如果设计不当,就会出现死锁的问题。如果一个进程在等待一件不可能发生的事,则进程就死锁了。而如果一个或多个进程产生死锁,就会造成系统死锁。
死锁的四个必要条件:资源互斥、每个进程占有资源并等待其他资源、系统不能剥夺进程资源、进程资源图是一个环路。
死锁产生后,解决措施是打破四大条件:
-
死锁预防:采用某种策略限制并发进程对于资源的请求,破坏死锁产生的四个条件之一,使系统任何时刻都不满足死锁的条件。
-
死锁避免:一般采用银行家算法来避免,银行家算法,就是提前计算出一条不会死锁的资源分配方法,才分配资源,否则不分配资源,相当于借贷,考虑对方还得起才借钱,提前考虑好就可以避免死锁。
-
死锁检测:允许死锁产生,系统定时运行一个检测死锁的程序,若检测到系统中发生死锁,则设法加以解除。
-
死锁解除:即死锁发生后的解除方法,如强制剥夺资源,撤销进程等。
银行家算法
系统有3个进程ABC,3个进程都需要5个系统资源。如果系统至少有多少个资源,则不可能发生死锁。
P1 | P2 | P3 |
---|---|---|
1 | 1 | 1 |
1 | 1 | 1 |
1 | 1 | 1 |
1 | 1 | 1 |
1 |
只要像上面一样给其中一个最大的系统资源数量,其他资源-1就能保证不发生死锁。
公式:n个进程,每个进程需要r个资源,发生死锁的最大资源数(谁都完不成)是:n*(r-1)。不发生死锁的最小资源数为n(r-1)+1 (保证一个人能完成,其他就都能把那个借过来)
银行家算法:分配资源的原则
-
当一个进程对资源的最大需求量不超过系统中的资源数时,可以接纳改进程。
-
进程可以分期请求资源,但请求的总数不能超过最大需求量。
-
当系统现有的资源不能满足进程尚需资源数时,对进程的请求可以推迟分配,但总能使进程在有限的时间内得到资源。
存储管理
存储管理为内存和外存直接的关系
页式存储
物理内存和虚拟内存都被分割成大小相等的页。通常页面大小事固定的,如4KB、8KB等,但可以根据系统的具体需求进行调整。
地址映射:页式存储通过页表(Page Table)来实现虚拟地址到物理地址的映射。页表记录了每个虚拟页面对应的物理页面位置。
根据页号找到内存的块号
-
优点:利用率高,碎片小,分配及管理简单
-
缺点:增加了系统开销;可能产生抖动现象
逻辑地址算物理地址
逻辑地址=页号+页内地址;物理地址=页帧号+页内地址
页面置换算法
为了解决内存不足时的页面置换问题,操作系统采用了多种页面置换算法。这些算法包括:
-
最近最少使用(LRU):选择最近最少使用的页面进行置换。
-
先进先出(FIFO):选择最早进入内存的页面进行置换。
-
最优算法(OPT):理论上的一种算法,无法实现,但在理论上可以为其他算法提供比较基准。
-
淘汰原则:优先淘汰最近未访问的,而后淘汰最近未修改的页面
段式存储
段式存储是一种内存管理技术,它将程序的地址空间划分为多个段(segment),每个段都是一个逻辑单位,包含了一组意义完整的信息,如代码段、数据段等。
-
优点:多道程序共享内存,各段程序修改互不影响
-
缺点:内存利用率低,内存碎片浪费大
考题:
段号 | 基地址 | 段长 |
---|---|---|
0 | 1100 | 800 |
1 | 3310 | 50 |
2 | 5000 | 200 |
3 | 4100 | 580 |
4 | 2000 | 100 |
(段号,段长)如:(0,810)逻辑地址到物理地址转换时,地址越界。
段页式存储
段页式存储是一种将存储器分为若干个段和页的存储管理方式,它结合了段式存储和页式存储的优点,为程序提供了更加灵活和高效的内存管理,先分段再分页。
-
段页式存储:将程序的地址空间首先划分为若干个段,每个段再被划分为若干个页。地址转换时,先通过段表将逻辑地址转换成线性地址(段内地址),然后再通过页表将线性地址转换成物理地址。
-
操作系统首先根据程序的需求,将内存分配给不同的段。
-
每个段进一步被分割为固定大小的页,这些页可以分散存储在物理内存的不同位置。
-
逻辑地址由段号和页号组成,首先通过段表找到对应的段描述符,获取段的基地址和页表地址。然后,利用页号和页表地址在页表中找到对应的页表项,获取物理页框号。最后,将物理页框号和页内偏移量拼接成物理地址。
-
优点:空间浪费小,利用率高;存储共享容易、能动态连接;
-
缺点:管理软件的增加,复杂性和开销随之增加,须臾的硬件以及占用的内容也有所增加,使得执行速度大大下降;
设备管理
内存管理中,主要有固定分区、可变分区、可重定位分区和多重分区
固定分区:固定分区也称为静态分区,在作业装入之前,内存就被划分为若干个分区。划分工作可以由系统管理员完成,也可以由操作系统实现。一旦划分完成,在系统运行期间不在重新划分,即分区个数不可变,分区大小不可变。
-
优点:实现技术简单,适用于作业的大小和多少事先都比较清楚的系统中。
-
缺点:由于每个分区只能存放一个作业,索爷内存的利用率不高,内部碎片较多。
可变分区:也叫动态分区,从可用的内存中划出一块连续的区域分配给他,形成一个新的分区,且分区大小正好等于该作业的大小可变分区中 分区的大小和分区的个数都是可变的。
-
首次适应算法:从空闲区表的第一个表目起查找该表,把最先能够满足要求的空闲区分配给作业,减少查询时间
-
最佳适应算法:从全部空闲区中找出能满足作业要求的、最小的空闲区,能使碎片尽量小。
-
最坏适应算法:从所有未分配的分区中挑选最大的且大于和等于作业大小的分区分给要求的作业;空闲区按由大到小排序,每次查找从链头开始。
可重定位分区:解决存储器碎片问题的简单而有效的方法。其基本思想是在适当的时候,把零散的空白区合并为一个大的空白空间,称为拼接。实现方式是移动某些已分配区域中的信息,使所有的分配区紧挨着存储器的一端,而空白区在另一端。
多重分区:多重分区的基本思想是为一个作业分配一个以上的分区,允许一个作业在其运行过程中动态地申请附加存储空间,该空间不必和已有的作业分区相链接
-
快表是一块小容量的相联存储器,由高速缓存器组成,速度快,并且可以从硬件上保证按内容并行查找,一般用来存放当前访问最频繁的少数互动页面的页号。
-
快表:将页表存于Cache上,慢表:将页表存于内存上。
IO设备管理
设备是计算机系统与外界交互的工具,具体负责计算机与外部的输入/输出工作,所以常被称为外部设备(外设)。在计算机系统中,将负责管理设备和输入/输出的机构称为IO系统,因此IO系统由设备、控制器、通道、总线和IO软件组成。
分类:
-
按数据组织分类:块设备、字符设备
-
按照功能分类:输入设备、输出设备、存储设备、网络联网设备、供电设备
-
资源分配角度分类:独占设备、共享设备和虚拟设备
-
数据传输速率分类:低俗设备、中速设备、高速设备、
设备管理是为了保证多道程序环境下,多个进程竞争使用设备时,按一定的策略分配和管理各种设备,控制设备的各种操作,完成io设备与主存之间的数据交换
用户进程——>设备无关软件——>设备驱动程序——>中断处理程序——>硬件
微内核
现代操作系统大多永远两种工作状态,分别是核心态和用户态。一般应用程序工作在用户态,而内核模块和最基本的操作系统核心工作在核心态。
把传统操作系统代码放置到更高层,从操作系统中去掉尽可能多的东西,而只留下最小的核心,称之为微内核。(c/s结构)
内核服务:异常和中断、计时器、IO管理等
实质 | 优点 | 缺点 | |
---|---|---|---|
单体内核 | 将图形、设备驱动及文件系统等功能全部在内核中实现,运行在内核状态和同一地址空间。 | 减少进程间通信和状态切换的系统开销,获得较高的运行效率 | 内核庞大,占用资源较多且不易裁剪。系统的稳定性和安全性不好。 |
微内核 | 只实现基本功能,将图形系统、文件系统、设备驱动及通信功能放在内核之外。 | 内核精炼,便于剪裁和移植。系统服务程序运行在用户地址空间,系统的可靠性、稳定性和安全性较高、可用于分布式系统 | 用户状态和内核状态需要频繁切换,从而导致系统效率不如单体内核 |
目录结构
绝对路径:当前盘符开始的路径
相对路径:从当前路径开始的路径
-
R只读文档
-
A存档属性
-
S系统文件
-
H隐藏文件
-
文件名组成:驱动器号、路径、主文件名、扩展名
文件管理
文件是具有符号名的、在逻辑上具有完整意义的一组相关信息项的集合。
信息项是构成文件内容的基本单位,一个文件包括文件体和文件说明。文件体是文件真实的内容。文件说明是操作系统为了管理文件所用到的信息,包括文件名文件内部标识、文件的类型、文件存储地址、文件的长度、访问权限、建立时间和访问时间等。
文件管理系统,就是操作系统中实现文件统一管理的一组软件和相关数据的集合,专门负责管理和存取文件信息的软件机构,简称文件系统。
-
连续结构,将逻辑上连续的文件信息依次存放在连续编号的物理块上。
-
链接结构,将逻辑上连续的文件信息存放在不连续的物理块,每个物理块设有一个指针指向下一个物理块
-
索引结构,将逻辑上连续的文件信息存放在不连续的物理块中,系统为每个文件建立一个索引表,索引表记录了文件信息所在的逻辑块号对应的物理块号,并将索引表的起始地址放在与文件对应的文件目录项中。
索引文件结构
位示图
-
空闲区表法(空闲文件目录)
-
空闲立案表法
-
位示图法
-
成组链接法
0空闲1占用