第一章 操作系统概率
操作系统功能:进程、内存管理、文件系统、设备驱动程序、用户界面 ,管理硬件的
操作系统特征:并发(同一间隔)、共享(资源共享)、虚拟(物理实体一分为多)、异步(多个进程是走走停停),两大特性就是并发共享
单道批处理系统(自动、顺序、单道)多道(吞吐量大、资源利用率高,缺点无人机交互)分时(时间片,多路(多用户使用)、独立(用户独立使用)、及时、交互)、实时(及时,在规定时间完成事情), 通过系统调用和命令接口控制计算机
系统调用包含的操作:进程管理、open、read、write、fork、exit函数,资源级别的时候用系统调用,sin()不是系统调用
说明库函数与系统调用的区别和联系:
库函数是语言或应用程序的一部分,可以运行在用户空间中。而系统调用是操作系统的一部分,是内核为用户提供的程序接口,运行在内核空间中,而且许多库函数都会封装系统调用来实现功能。未使用系统调用的库函数,其执行效率通常要比系统调用的高。
第二章 进程控制
进程与线程:进程是系统进行资源分配和调度的一个独立单位。。线程是程序执行流的最小单位每个进程都有独立的地址空间和资源,创建和销毁进程的开销比较大。进程能独立运行,线程不能独立运行(有进程占用内存才能有线程来完成操作),父线程和子线程共享相同的数据空间并共享系统资源,线程数据共享简单但是同步复杂。同一进程中的线程之间可以共享资源,而不同进程之间的资源是隔离的。
进程特征:动态、独立、异步和并发,基本的是动态和并发 进程通常由程序、数据集合、PCB组成。
信号量:信号量其实就是一个变量(可以是一个整数,也可以是更复杂的记录型变量),可以用一个信号量来表示系统中某种资源的数量
临界资源:一个时间段内只允许一个进程使用的资源。各进程需要互斥的访问临界资源。
进程状态分类:准备、就绪、运行、阻塞、终止态,当程序要访问内存资源或者io设备的时候运行态变阻塞态,完成时变就绪态。
死锁:各进程因竞争资源而造成的一种互相等待对方手里的资源,导致各进程都阻塞,都无法向前推进的现象
进程间通信:共享存储(需要互斥)、消息传递(直接发送到接收消息队列、发送到信箱)、管道通信(半双工,写满才可读)
调度算法:fcfs先来先服务(按照顺序服务)、sjk短作业(短的先有抢占和非抢占)、HRRN高响应(响应比=(等待时间+运行时间)/运行时间大先)、时间片、优先级(多一个优先级字段)、多级反馈队列
银行家算法: 银行家算法是一种避免死锁的著名算法,其他说法都是错预防是错误的,破坏了死锁产生的必要条件中的“请求和保持”条件
P,V操作:P操作会阻塞进程、V操作释放进程,进程互斥先p后v,进程同步先v后p
死锁要满足的条件:互斥条件:有要互相使用的资源、不剥夺条件:资源只可以主动释放、循环等待、请求保持
第三章 内存管理
内存空间分配:(单一连续分区、固定分区)直接在装入分配物理地址,动态分区分配(可变分区分配)在 加载是逻辑地址变物理地址
内存空间回收:牢记一点即可,会把相邻的空闲区域合并为一个。
动态分配算法:首次适应(按地址递增)、最佳最坏(最佳按小到大最坏反之)、临近适应(地址递增从上一次分配开始)
文件控制块(FCB)组成:文件名物理地址大小、存取控制信息和使用信息。通过FCB,操作系统可以实现对文件的创建、删除、读写等操作。
页面置换算法:OPT最佳(往前面元素找最久未访问的)、FIFO(最先进最早out,Belady异常)、LRU最近最久(往后面元素找最久为访问的)clock访问位0out全1变全0在使用
段式管理实质:将程序按照逻辑或过程关系分成段,每段拥有自己的名字,程序员更加关注程序的模块化
缺页中断:访问页面不在内存时,产生一个缺页中断,由操作系统的缺页中断处理程序处理。缺页的进程阻塞,放入阻塞队列,调页完成后再将其唤醒,放回就绪队列。
虚拟内存特征:基础是程序的局部性理论。多次性:允许被分成多次调入内存。对换性:在作业运行时无需一直常驻内存将作业换入、换出。
虚拟性:从逻辑上扩充了内存的容量。虚拟内存最大容量是地址总线决定的,实际容量= min(内存和外存容量之和,CPU寻址范围2^地址总线数)
请求分页存储管理:逻辑地址进程空间由页号和偏移地址组成(页面、页)进程空间划分的,(页框、物理块、页帧、内存块)物理地址划分,页表中的页表项的大小字节由内存块的数量决定,长度由页面长度决定,页面大小=内存块大小。多级页表:算出一页多少页表项,页号/页表项多少=级数
分页内部碎片、分段外部碎片、段页内外都有。虚拟内存页表项字段状态位(决定页故障的)、访问字段、修改位、外存地址
第四章 文件系统
FCB,即文件控制块用于管理文件的存储和访问。FCB包含了文件的元数据信息,如文件名、文件大小、文件创建时间、修改时间,以及文件在磁盘上的存储位置和状态信息。
文件逻辑结构:无结构(流式二进制文件txt)有结构(顺序文件物理上可以顺序存储(数组)链式存储(链表)、索引文件看做索引表、索引顺序)
文件保护方法:口令保护、加密保护(加密算法最简单的就是异或)、访问控制(访问控制列表记录权限)
文件共享:硬链接设置链接计数节点、软链接创建link文件根据文件中的地址找到目录。软链接要慢和耗费资源磁盘空间
第五章 I/O设备
IO控制器组成:CPU与控制器的接口、I/O逻辑、控制器与设备的接口
设备驱动程序组成自动配置和初始化子程序、服务于I/O请求的子程序、中断服务子程序,功能:初始化配置,数据传输、错误监测、中断处理
IO核心子系统:设备独立性软件:这一层软件负责管理和调度I/O设备,它独立于具体的设备,由操作系统提供。
设备驱动程序层:这一层软件负责与具体的I/O设备通信,它由设备制造商提供,通常包含在设备的随机文档中。
中断处理程序层:这一层软件处理由I/O设备产生的中断信号,以便让操作系统能够处理设备的输入和输出操作。
IO控制方式:轮询方式、中断控制(一次一字)、DMA(一次一数据块)、通道控制(通道是硬件解决连续存储问题需知道起始地址和数据库长度)
SPOOLing :假脱机技术组成:“输入井”模拟脱机输入时的磁带据“输出井”模拟脱机输出时的磁带“输入进程”模拟脱机输入时的外围控制机
“输出进程”模拟脱机输出时的外围控制机。用程序来实现的脱机技术。
设备分配:安全分配(分配一个进程阻塞一次)、不安全(一个进程同时使用多设备)
分配步骤:①根据进程请求的物理设备名查找SDT(注:物理设备名是进程请求分配设备时提供的参数)②根据SDT找到DCT,若设备忙碌则将进程PCB挂到设备等待队列中,不忙碌则将设备分配给进程。③根据DCT找到COCT,若控制器忙碌则将进程PCB挂到控制器等待队列中,不忙碌则将控制器分配给进程。④根据COCT找到CHCT,若通道忙碌则将进程PCB挂到通道等待队列中,不忙碌则将通道分配给进程。
磁盘调度算法:先来先服务(按来的顺序服务)、最短寻找时间优先(SSTF处理近的磁道。产生饥饿)扫描算法(SCAN到磁道底转向)LOOK调度算法(没有方向上请求就回头)循环扫描算法(C—SCAN SCAN算法回来直接到最开始的地方)C-LOOK调度算法(不处理回来请求)