操作系统概论重点整理张琼声版.docx
《操作系统概论重点整理张琼声版.docx》由会员分享,可在线阅读,更多相关《操作系统概论重点整理张琼声版.docx(7页珍藏版)》请在冰豆网上搜索。
操作系统概论重点整理张琼声版
操作系统概论-02323(2017年张琼声版本)
第一章:
操作系统简介
操作系统概念:
操作系统是一种复杂的系统软件,是不同程序代码、数据结构、初始化文件的集合,可执行。
操作系统是提供计算机用户与计算机硬件之间的接口,并管理计算机软件和硬件资源,并且通过这个接口使应用程序的开发变得简单、高效。
接口是两个不同部分的交接面。
接口分为硬件接口和软件接口,计算机的所有功能最终都是由硬件的操作来实现的,计算机屏蔽了对硬件操作的细节。
操作系统完成的两个目标:
与硬件相互作用,为包含在所有硬件平台上的所有底层可编程部件提供服务。
为运行在计算机系统上的应用程序(即用户程序)提供执行环境
现代计算机特点是支持多任务,,一方面保证用户程序的顺利执行,另一方面使计算机系统资源得到高效的利用,保证计算机系统的高性能
操作系统的功能:
处理机管理、内存管理、设备管理、文件管理。
●操作系统的发展:
无操作系统--单道批处理系统--多道批处理系统--微机操作系--实时操作系统
无操作系统阶段:
电子管,无存储设备,第一台:
1946年宾夕法尼亚大学的「埃尼阿克」
单道批处理系统:
晶体管,磁性存储设备,内存中有一道批处理作业,计算机资源被用户作业独占。
吞吐量是指单位时间内计算机系统处理的作业量
多道程序系统:
集成电路芯片,出现了分时操作系统(多个终端)。
微机操作系统:
第一台Intel公司顾问GaryKildall编写的CP/M系统,是一台磁盘操作系统,用于Intel8080.
实时操作系统:
广泛应用于各种工业现场的自动控制、海底探测、智能机器人和航空航天等。
●批处理、实时、分时系统的优缺点比较:
单道批处理系统:
自动性、顺序性、单道性。
优点:
减少了等待人工操作的时间
缺点:
CPU资源不能得到有效的利用。
多道批处理系统:
多道性、无序性、调度性、复杂性。
优点:
能够使CPU和内存IO资源得到充分利用,,提高系统的吞吐量。
缺点:
系统平均周转时间长,缺乏交互能力。
分时系统:
多路性、及时性、交互性、独立性。
优点:
提供了人机交互,可以使用户通过不同终端分享主机。
缺点:
不能及时接收及时处理用户命令。
实时操作系统(用户实时控制和实时信息处理):
多路性、独立性、及时性、交互性、可靠性。
在实时系统中,往往采取多级容错措施来保证系统安全和数据安全。
操作系统产品:
主机操作系统(批处理、事务处理(银行支票处理或航班预订)、分时处理),微机操作系统,服务器操作系统、嵌入式操作系统(物联网操作系统)
操作系统特征:
并发(多个事件在同一时间间隔内同时发生)、共享、虚拟、异步
操作系统功能:
内存管理:
任务是为多道程序的运行提供良好的运行环境,方便用户使用内存,提高内存利用率,以及从逻辑上扩充内存实现虚拟存储。
它具有内存分配、内存保护、地址映射和内存扩充(借助与虚拟存储技术)等功能。
进程管理
文件管理:
存储空间的管理-目录管理-文件的读写管理和权限控制
设备管理
提供用户接口:
命令接口,图形用户接口,程序接口
操作系统体系结构:
简单的监控程序模型—单体结构模型—层次结构模型—客户服务器模型与微内核结构—动态可扩展结构模型
单体内核是操作系统中最早、最常见的体系结构(UNIX/MS-DOS/Linux/MACOSX/BSD)
层次结构最经典的例子Dijjkstra的THE系统
指令的执行:
程序是指令的集合,程序的执行就是按照某种控制流执行指令的过程。
一个单一指令需要的处理称为指令周期,包括取指周期和执行周期
第二章:
进程管理
程序的顺序执行特点:
顺序性,封闭性、可再现性
程序的并发执行特点:
间断性、失去封闭性、不可再现性
进程的概念:
进程是允许并发的程序在某个数据集合上的运行过程
进程是正文段、用户数据段和进程控制块共同组成的执行环境。
正文段存放被执行的机器指令,用户数据段存放进程在执行时要操作的用户数据,进程控制块存放程序的执行环境,操作系统通过这些描述和管理进程。
进程代表了程序的执行过程,是一个动态的实体,它随着指令的执行而不断变化,在某个特定时刻的进程内容被称为进程映像。
进程的特征:
并发性、独立性、异步性、动态性、结构特征。
●进程和程序的区别:
程序是静态的,进程是动态的
程序是永久的,进程是暂时存在的
程序和进程存在的实体不同。
程序是指令的集合,进程是由正文段、用户数据段、进程控制块组成
进程和程序的联系:
进程是程序的一次执行,进程总是对应至少一个特定的程序,执行程序的代码,一个程序可以对应多个进程。
进程控制块:
进程实体存在的标志是操作系统管理进程所使用的数据结构—进程控制块
进程控制块是进程实体的一部分,是操作系统中最重要的数据结构,进程控制块中记录了操作系统所需要的,用户描述进程情况以及控制进程运行所需要的全部信息,进程控制块是操作系统感知进程存在的唯一标志。
进程控制块中的信息:
进程标识符信息、处理机状态信息、进程调度信息、进程控制信息
进程的状态:
就绪态、执行态,阻塞态
转换:
进程的组织:
链接方式、索引方式、进程队列
进程的控制:
进程的创建----阻塞----唤醒----终止
创建的条件:
1)用户登录2)作业调度3)提供服务4)应用请求
阻塞的条件:
1)请求系统服务2)数据尚未到达3)无工作可做4)启动某种操作
●操作系统内核
操作系统内核是计算机硬件的第一次扩充,内核执行操作系统与硬件密切相关,执行频率高的模块,常驻内存。
操作系统内核的功能:
1)支撑功能2)资源管理功能
支撑功能包括:
中断处理、时钟管理和原语操作,原语操作是一组在执行过程中不能中断的操作
资源管理功能包括:
进程管理、存储器管理和设备管理
中断:
中断是改变计算机执行指令顺序的一种事件,这种事件与CPU芯片内外部硬件电路产生的电信号相对应。
中断的目的:
能有效提高CPU的利用率,改善系统性能,支持系统的异步性。
引用中断机制前,采用的是反复轮询的方式,来检测本次I/O是否结束。
中断类型1)同步中断(内部中断或异常)2)异步中断(外部中断)
同步中断是当指令执行时由CPU控制单元产生的,如除法出错,调试、溢出、浮点出错等
异步中断是由其他硬件设备随机产生的,可分为外部可屏蔽中断(I/O设备产生)和外部不可屏蔽中断(紧急事件产生,硬件故障等)
引起中断的原因:
1)人为设置中断2)程序性事故3)I/O设备4)硬件故障5)外部事件
单重中断的处理过程:
CPU在反复执行指令的过程中,每执行完一条执行,都会检查是否有外部中断的到来,如果有中断信号,则转中断处理。
●时钟管理:
计算机的很多活动都是由定时测量来控制的,两种定时测量:
1)保存当前的系统时间和日期2)维持定时器,操作系统依靠时钟硬件和时钟驱动程序来完成上述两种测量
时钟硬件(可编程间隔定时器)的功能:
按照指定的时间间隔产生时钟中断,测量逝去的时间,并触发与时间有关的操作
时钟软件(时钟驱动程序)功能:
1)维护日期和时间2)递减当前进程在一个时间片内的剩余执行时间,并检查是否为0,防止进程运行超时3)对CPU的使用情况记账4)递减报警计数器
操作系统内核可以利用时钟机制防止一个进程垄断CPU或者其他资源
两个时钟源:
实时时钟(RTC/CMOS)和OS时钟.
●系统调用:
系统调用是一群事先定义好的模块,他们提供一条管道让应用程序或用户能由此得到核心程序的服务。
系统调用是系统程序与用户程序之间的接口
系统调用与一般函数调用的区别:
1)系统调用运行在系统态,一般函数运行在用户态
2)系统调用与一般函数的执行过程不同,系统调用中断时,由系统找相应的系统调用子程序
3)系统调用要进行『中断处理』,比一般函数多了一些系统开销
●进程同步:
操作系统同步机制的主要任务就是保证在多任务共享系统资源的情况下,程序执行能得到正确的结果。
同时,同步机制需要解决进程执行的协调问题。
进程同步的概念:
在多任务系统中,进程一般存在资源共享关系和相互合作的关系。
进程同步有两个任务:
1)对具有共享资源关系的进程,保证以互斥的方式访问临界资源。
临界资源是必须以互斥方式访问的共享资源。
2)对具有相互合作关系的进程,要保证相互合作的诸进程协调执行。
同步机制应遵循的准则:
1)空闲让进2)忙则等待3)有限等待4)让权等待
●信号量机制(waitsignal)对不同的共享资源设置称为信号量的变量,用信号量的取值标识资源的使用状况,或某种事件的发生。
一、整型信号量机制:
用整型变量值来标记资源的使用情况。
若整型量>0,说明有可用资源;若整型量<=0,说明资源忙,进程必须等待。
对于一次只允许一个进程访问的临界资源,可定义一个用户互斥的整型信号量,并将其初始化为1,整型信号量的值只能通过两个特定的原子操作wait和signal来改变。
Varsinteger;
Wait(s){//申请资源
Whiles<=0dono-op;
S=s-1;//占用资源
}
signal(s){ //释放资源
s=s+1;
}
整型信号量的互斥:
初始变量为1
整型信号量的协调:
初始变量为0
总结:
1)整型信号量的值只能由wait和signal操作改变
2)wait和signal的操作都是原子操作,即在这两个操作中对信号量的访问是不能被中断的
3)原子操作可以通过关中断来实现
4)整型信号量机制的实例:
linux中的自旋锁SpinLock
5)不同的资源对应不同的信号量,并不是系统中所有资源都用同一个信号量标识
二、记录型信号量机制:
代码:
Typesemaphore=record
Value:
integer; //资源数量
L:
listofprocess; //阻塞队列
Procedurewait(s)
Vars:
semaphore;
Begin
s.value=s.value-1; //申请资源
ifs.value<0thenblock(s.L) //此时资源无,自我阻塞进入阻塞队列
end
procedure signal(s)
vars:
semaphore;
begin
s.value=s.value+1; //释放一个资源
ifs.value<=0thenwakeup(s.L);//释放后发现还有阻塞,则唤醒阻塞中的进程