第一章
操作系统
概念(定义):
1.负责管理协调软硬件等计算机资源的工作。
2.为上层用户、应用程序提供简单易用的服务
3.操作系统是一种系统软件,而不是硬件
功能和目标
1.资源的管理者:(1)处理机管理 (2)存储器管理 (3)文件管理 (4)设备管理
2.向用户提供服务:(1)命令接口(用户可以直接使用):
联机命令接口 (交互)、脱机(批处理)命令接口(用户说一堆,机器做一堆)
(2)程序接口=系统调用(用户间接使用,为程序员提供的):
由一组系统调用组成。系统调用=广义指令
(3)GUI用户图形界面
3.对硬件机器的拓展:扩充机器(虚拟机)
特征
1.并发:和并行区分开,操作系统和程序并发是一起诞生的
2.共享: 互斥共享:摄像头 同时共享:音响
3.虚拟:
空分复用技术(虚拟存储技术:可以同时打开很多占内存的应用,他们所占运行内存远大于电脑运行内存)
时分复用技术(虚拟处理器,比如你4核的,但是你可以同时运行五个应用)
4.异步: 程序总是走走停停
其他
1.系统软件包括:操作系统、数据库管理系统、语言处理程序、服务性程序、标准库程序。
2.操作系统管理文件(文件结构、多文件之间的协调,不关心文件内容),但是文件不属于硬件资源,需要计算机资源
3.源程序直接面向程序员的,而不是操作系统的管理内容
4.命令接口:命令解释器、shell命令解析器
5.操作系统不提供管理系统缓存的系统调用,操作系统的程序会被加载到RAM
6.顺序性是程序设计的基本特征
操作系统的发展和分类
1.手工操作阶段: 缺点:人机速度矛盾
2.批处理阶段:
优点:缓解人机速度矛盾 缺点:资源利用率仍然很低
多道批处理系统的I/O设备可与CPU并行工作,由中断技术实现
优点:多道程序并发执行,资源利用率高 缺点:不提供人机交互功能,系统开销大
3.分时操作系统:cpu的运行时间分为很短的shijianp
优点:提供人机交互 缺点:不能优先处理紧急任务
4.实时操作系统:
优点:能优先处理紧急任务
实时操作系统必须在"被控制对象规定时间内"处理来自外部的事件。
实时操作系统采用抢占式的优先级高者优先,实时操作系统利用率低。
(1)网络操作系统、分布式操作系统、个人计算机操作系统
(2)分布式操作系统和网络操作系统的不同:分布式操作系统中的若干计算机互相协同完成同一任务
(3)个人计算机操作系统:Windows、Linux、Macintosh等
(4)在IBM-PC中,操作系统称为:微型计算机操作系统
(5)多任务操作系统可在同一时间内运行多个应用程序,多个任务必须互斥地访问共享资源,所以要对共享资源进行保护。不一定要在多cpu 上才能运行
运行机制
两种指令:特权指令(核心态,只允许操作系统使用)、非特权指令
两种处理器状态:核心态(管态,可运行除了 陷入指令(防管指令/trap指令)以外的所有指令)、用户态(目态)
两种程序:内核程序(核心态,特权指令)、应用程序
操作系统内核(软件)
1.支撑功能:
1.时钟管理:实现计时功能
2.中断处理:负责实现中断机制
3.原语:(1)是一种特殊的程序,处于操作系统最底层,最接近硬件的部分
(2)具有原子性
(3)运行时间短,调用频繁
2.管理功能:
对系统资源进行管理的功能:
(1)进程管理:进程状态管理、进程调度和分配、创建与撤销进程控制块等
(2)存储器管理;存储器的空间分配和回收、内存信息保护程序、代码对换程序
(3)设备管理:缓冲区管理、设备分配和回收等。
计算机系统的层次结构
用户 |
---|
用户 应用程序 | 非内核功能 | (操作系统.内核功能)进程管理、存储器管理、设备管理等功能 | (操作系统.内核功能)时钟管理、中断处理、原语(设备驱动、CPU切换等) | 裸机(纯硬件) |
操作系统的体系结构
1.大内核:
优点:高性能
缺点:内核代码庞大,结构混乱,难以维护
2.微内核:
优点:内核功能少,结构清晰,方便维护,保证了操作系统的可靠性。
缺点:需要频繁地在核心态和用户态之间切换,性能低
中断和异常
1.中断机制的诞生:为了实现多道程序并发执行而引入的一种技术
2.中断的概念和作用:
发生中断,就意味着需要操作系统介入开张管理工作(如进程切换和分配I/o设备都需要使用特权指令 ),CPU会立即进入核心态
中断是CPU从用户态进入核心态的唯一途径。
核心态下唯一不可执行的是 陷入指令
3.中断的分类:
(1)内中断(来自CPU内部,与当前执行的指令有关,也称"异常",陷入,例外):
自愿中断---指令中断,如:
强迫中断:硬件故障(如缺页)、软件中断(整数除0)
(2)外中断(中断,来自CPU外部,与当前执行的指令无关):
外设请求:如I/O操作完成发出的中断信号
人工干预:如用户强行终止一个进程
内中断的另一种分类方式:(1)陷阱,陷入(trap):有意而为之的异常,如系统调用
(2)故障(fault):由错误条件引起的,如缺页
(3)终止(abort):致命错误,不可恢复的,整数除0
4.中断的处理过程:
(1)每条指令执行结束后,CPU检查是否有外部中断信号
(2)若有外部中断信号,则需要保护被中断进程的CPU环境(如程序状态字PSW、程序计数器PC、各种通用寄存器1)
(3)根据中断信号类型转入相应的 中断处理程序(核心态)
(4)恢复原进程的CPU环境并退出中断,返回原进程继续往下执行
即:
传递系统调用参数 ==> 执行陷入指令 ==> 执行相应的服务程序 ==> 返回用户态
外部中断处理过程:PC值由中断由隐指令,即硬件自动保存,而通用寄存器PSW内容由操作系统保存。
内部异常不能被屏蔽,一旦出现立即处理。,对于非法指令、除数为0等异常,必须终止。
系统调用
什么是系统调用,有何作用
操作系统提供给应用程序的接口
应用程序通过系统调用来请求获得操作系统的服务
分类:设备管理、文件管理、进程控制、进程通信、内存管理
系统调用一般执行特权指令才能完成,因此
系统调用和库函数的区别
系统调用是操作系统向上层提供的接口
有的库函数是对系统调用的进一步封装
C或者java等是通过高级语言提供的库函数间接进行系统调用
不涉及系统调用的库函数: 如 取绝对值 的函数
涉及系统调用的库函数:如 创建一个新文件 的函数
系统调用背后的过程
1.传递系统调用参数
2.执行陷入指令
3.执行系统调用相应服务程序
4.返回用户程序
1.陷入指令是在用户态执行的,执行陷入指令之后立即引发一个内中断,从而进入核心态,退出核心态:中断返回指令
2.发出系统调用是在用户态,而对系统调用的相应处理在核心态下进行
***3.陷入指令是唯一一个只能在用户态执行,而不可以在核心态执行的指令
其他
1.通用操作系统使用时间片轮转调度算法,用户不需要预订运行时间
2.输入输出指令需要中断操作,中断必须在核心态下执行。
3.多道性是为了提高系统利用率和吞吐量而提出的。
4.程序设计无法形成屏蔽中断指令。
5.中断时操作系统必须提高的功能。
6.用户通过防管中断进入核心态。
7.进程调度由调度算法决定CPU使用权,由操作系统实现,无须硬件支持。而时钟管理、地址映射和中断系统就需要硬件的支持。
8.进入中断处理的程序属于:操作系统程序。
9.计算机通过硬件中断机制完成由用户态到核心态的转换。
10.命令解释程序属于 命令接口,用户可直接使用。
中断处理和子程序调用都需要压栈以保护现场,中断处理一定会保护的是:程序状态字寄存器,子程序只需要保存程序断点,即该指令的 11.下一条指令的地址。
|