自己花时间整理的知识点,希望能够帮助到大家!
操作系统原理
一、操作系统概述
1.操作系统
(1)概念:是计算机系统的一个系统软件,能有效地组织和管理计算机系统中的硬件和软件资源,合理(公平对待不同用户程序,不发生“死锁”和“饥饿”)组织计算机工作流程,控制程序的执行,并向用户提供各种服务功能,使用户能灵活、方便、有效地使用计算机,并使整个计算机系统高效运行;位于硬件之上,支撑软件(软件的编制和维护)之下。
A.应用角度看主要作用:提供人机交互接口(提供给用户的接口是命令输入和系统调用);
B.软件开发角度看作用:软件开发的基础平台;
C.安全保护角度看作用:第一道安全防线;
D.系统发展角度看作用:虚拟机和扩展机
(2)特性
A.并发性:执行期间具有相互制约关系;程序与计算不再一一对应;结果不再现并发过程失去封闭性;
B.共享性:CPU、内外存储器、外部设备;
C.随机性(异步性):何时退出?假死?中断?关机?重启?
(3)功能:
A.进程管理:对CPU进行管理。包括进程控制(创建、撤销结束进程以及控制运行时候的各种状态转换)、进程同步(处理进程之间同步或互斥关系)、进程间通信(信息交换)和进程调度(按照一定算法从就绪队列中挑选一个进程让CPU执行它);
B.存储管理:管理计算机内存资源。包括回收与分配内存、存储保护(考虑程序可能发生越界的情况)和内存扩充(借助虚拟技术在逻辑上增加进程运行空间);
C.文件管理:文件存储空间的管理(管理/创建/删除/命名文件);文件目录管理;文件系统的安全性(读写和存取权限)
D.设备管理:除CPU和内存之外的所有输入输入设备,复杂外部设备分配和故障处理。技术包括:中断技术、通道技术、虚拟设备技术和缓冲技术。
E.用户接区(作业管理):
(4)常见的操作系统:Ubuntu、Windows、Unix、DOS、BSD
2.操作系统分类:
按页面使用环境和功能特征
(1)批处理系统:分单道批处理系统和多道批处理系统,其中多道批处理效率和吞吐量较高但缺少人机交互性;指令有特权指令和一般指令;
(2)分时系统:多用户共同、交互使用系统;独占性(用户感觉);及时性
(3)实时系统:多路性,及时性,交互性,可靠性,有过载防护能力
按计算机体系结构分类:
(1)个人操作系统
(2)网络操作系统:主从关系明显;有限制共享资源;
(3)分布式操作系统:统一配置,所有主机使用一个操作系统;资源共享;相互通信;
(4)嵌入式操作系统:成本低
交互式系统是指用户交互式地向系统提出命令请求,系统接受每个用户的命令,采用时间片轮转方式处理服务,并通过交互方式在终端上向用户显示结果。多级反馈、时间片轮转和高优先级适用于交互式操作系统。
3.操作系统结构:
(1)整体式结构:功能划分成多模块;
(2)层次式结构:单向调用,同层不调用;
(3)微内核结构(C/S结构):将大多数的操作系统由用户进程实现;分割成多个部分,每一部分只处理一方面的功能,如文件服务、进程服务与服务器通信;特点:高可靠性、高灵活性、适合分布式处理、可移植性强、融入面向对象技术,但效率低,不适合频繁通信;微内核具备:线程调度、虚拟存储、消息传递、设备驱动、内核原语操作以及中断处理。
4.指令:
(1)特权指令:包括输出指令、停机指令等,只有在监控程序才能执行特权指令,只能在内核状态(管态)下运行(屏蔽中断、关闭中断);
(2)一般指令:用户态下运行(关机、读文件、设置时间),管态下也可以执行。如果用户程序在用户态(目态)执行特权指令,则引起访管中断,这也是CPU由用户态向核心态转换的方法。
5.
(1)临界资源:
(2)可重写入代码:硬盘,内存;
(3)不可重用资源:时间片到时、硬件时钟到时
6.三类接口可供用户使用:
(1)命令接口:提供一组命令供用户间接/直接操作;
(2)程序调用:一组系统调用命令组成,是操作系统提供给编程人员唯一接口,调用命令供用户程序使用;(用户编程需要打印输出,提供指令:write())
(3)图像界面接口:图标、菜单、窗口,形成一个直观易懂,使用方便的计算机操作环境,终端窗口采用命令行。
7.设备分配算法中,数据结构主要包含四个表分配顺序是:系统设备表(SDT)、设备控制表(DCT)、控制器控制表(COCT)、通道控制表(CHCT)。
8.程序状态字(PSW,专门的寄存器指示处理器状态)
(1)包含:CPU工作状态码(指明管/目态);条件码(指令结果);终端屏蔽码(是否允许中断);
(2)状态标志:CF(有进位)、ZF(为零)、SF(符号)、OF(溢出)、TF(陷阱)、IF(中断屏蔽)、VIF(虚拟中断)、VIP(虚拟自断待决)、IOPL(IO特权级别)
二、操作系统运行机制
1.CPU中的存储器
(1)用户可见寄存器:主要用于各种算术逻辑指令和访问指令(数据寄存器、地址寄存器、条件码寄存器)
(2)控制和状态寄存器:用于控制处理器的操作(程序计数器PC、指令寄存器IR、程序状态寄存器PSW)
2.中断与异常的分类
(1)中断:(外部事件引起的)时钟中断;输入输出中断(键盘输入);控制台中断;硬件故障中断;网卡上数据区满(数据传输完成);(堆栈溢出);(被0除)
(2)异常:(内部事件引起的)程序性中断(执行指令产生的结果);访管指令中断(被清零);
3.系统调用
(1)概念:运行在用户态(CPU在用户程序中执行)被调用程序在系统态(CPU在系统程序中执行);系统调用可嵌套使用,即一个被调用过程执行期间还可以调用另一个,一般可多次调用但不能无限制调用;
(2)分类:进程控制类(创建/终止进程)、文件操作(打开)、进程通信类、设备管理类(请求/释放设备)、信息维护类(时间日期);
(3)参数传递:由陷入指令自带参数(只能携带几个);通过寄存器传递参数(内存开辟专门的堆栈传递参数);
(4)一般调用在,被调用过程执行结束后,会直接返回调用程序;系统调用在结束调用,首先会对所要求的进程进行优先级分析,若调用进程不具备高优先级则会产生重新调度;
三、进程线程模型
1.多道程序环境特点:独立性;随机性(输入输出都是随机的);资源共享(导致执行速度制约)。
2.进程
(1)概念:计算机程序(指令、数据组成)关于数据集合上的一次运行活动,是资源分配的基本单位;
(2)特点:并行性;独立性(独立资源分配单元);异步性(不可预知速度的向前推行);动态性;交往性。
(3)组成:PCB、指令和数据三部分组成;
(4)进程控制块(PCB)
A.组成:进程名、进程号、存储信息、进程标识符、进程优先级、进程当前状态、资源清单、消息队列指针、进程队列指针、打开当前文件等调度信息和PSW、时钟、界地址寄存器等现场信息;
B.组织方式:线性方式、索引方式、链接方式、队列方式(就绪队列、等待队列、运行队列);
C.特征:是进程的灵魂;必须常驻内存;PCB的运行状态只可以通过操作系统读取。
(5)进程控制:通过原语实现对进程在整个生命周期中各种状态间的转换;用于进程控制的原语一般有创建进程、撤销进程、挂起进程、激活进程、阻塞进程、唤醒进程以及改变进程优先级等。
(6)创建进程:
A.步骤:申请空白PCB;为新进程分配资源;初始化PCB;将新进程插入就绪队列末尾。
B.创建进程的时机:用户登录;系统初始化;用户系统调用;初始化批处理作业。
3.进程状态及转换
(1)三状态模型:运行状态、就绪状态、等待状态(阻塞状态)。
其中运行状态转换到就绪状态有3种可能性:时间片用完;进程创建完成;被调度程序强占CPU(对于非强制式是:“一个进程运行结束”);
运行状态转换阻塞状态:请求系统服务、启动某种操作、新数据尚未到达、无新工作可做。
(2)五状态模型:运行、就绪、阻塞、创建、结束。
Linux上进程有五种状态:运行、中断、不可中断、僵尸状态、停止状态。
(3)七状态模型;运行、就绪、阻塞、创建、结束、激活(外->内)、挂起(内->外)。
4.线程
(1)概念:进程中的实体,不能独立于进程存在;是CPU调度和分派的基本单位;不同的线程可以执行相同的程序;同一进程中各线程共享内存空间;自己不拥有系统资源,只拥有一点运行中必不可少的资源;每个线程有一个标识符和一张线程描述表,记录了线程执行的寄存器和用户栈等现场;
(2)特点:花费开销少、切换花费时间少、内部通信快、能独立工作;
(3)线程操作含义:
pthread_join:等待一个特定的线程退出;pthread_yield:线程让出CPU(主动释放);
pthread_creat:创建线程库函数; pthread_exit:结束一个线程的库函数
5.CPU调度分类:高级调度(创建进程)、中级调度(调入内存)、低级调度(分配CPU)。
6.调度
(1)功能:记录系统中所有进程执行状态;从就绪队列中选出一个CPU分配给它;选中PCB有关现场信息(PSW、通用寄存器等)送往CPU的寄存器中,让他占用执行。
(2)时机:CPU资源让出来不一定调度,CPU资源占用一定不调度;可强占方式(当优先级高的进程运行存在时,立即进行调度,转让CPU资源)与不可强占方式(进程执行完毕才释放CPU)。
(3)调度算法:先来先服务FCFS(不可强占);最短时间作业算法SJF;轮转法RR;最高响应比优先算法HRRF(介于FCFS与SJF之间的折中算法,即考虑等待时间又不使长作业等待时间过长);多级反馈队列。操作系统不能在运行中动态改变进程调度算法。
四、存储管理方案
1.进程互斥的解决办法:竞争各方平等协商;引入进程管理者
2.计算机中资源共享的程序可分为三个层次:
(1)互斥;利用硬件解决的互斥方法简单、支持多个临界区、适用范围广;不能实现“让权等待”;
(2)死锁:
(3)饥饿:
3.临界资源