操作系统概念
2016年10月30日
14:41
1 什么是操作系统?
An OS is a program:
– Manage hardware.
– Provide app.
– Intermediary between user and hardware.
OS is a resource allocator.
OS is control program.
操作系统是一组控制和管理计算机软硬件资源、合理地对各类作业进行调度以及方便用户的程
序的集合。
对于操作系统没有一个统一的适用的定义。
2 操作系统设计目标
方便性/有效性/可扩展性/开放性
3 操作系统的发展
3.1 为什么发展?
– 不断地提高计算机资源利用率
– 方便用户
– 器件的不断更新换代
– 计算机系统结构的不断发展
3.2 发展过程
1945-1955 无操作系统时期
1955-1965 批处理系统
1965-1980 分时系统
1980-现在
---实时系统
---嵌入式系统
分区 OS和计算机结构 的第 1 页
---分布式系统
---网络系统
---……
批处理系统Batch System:批处理是指用户将一批作业提交给操作系统后就不再干预,由操
作系统控制它们自动运行。
优点:提高系统资源利用率和作业吞吐量。
缺点:批处理系统不具备交互性;作业周转时间长,用户使用不方便。
分时操作系统:采用时间片轮转的方式。具有交互性,多用户同时性和独立性。比如unix。
实时系统:保证即时响应和高可靠性。比如生产过程实时控制,航空系统实时控制,相比于上
面两个系统,资源利用率较低。
嵌入式操作系统Embedded Systems:专用性强。
网络系统:通过通信网络将物理上具有自治功能的数据处理系统或者计算机系统互联起来,实
现信息交换和资源共享,协同完成任务。
分布式系统:于网络系统有类似之处,但是有一些不同。第一,分布式系统虽然用网络链接,
但是没有制定标准协议;第二,分布式系统要求一个统一的操作系统,实现系统操作的统一
性;第三,系统具有透明性,系统为用户提供统一界面和接口,用户使用统一界面实现各种功
能,但并不知道自己任务在那一台计算机上执行。
4 总结
OS is an software between user and hardware.
OS is designed for 方便性,有效性,可扩展性,开放性。
OS has developed for several generations: NO OS, Batch, and Time-Sharing.
Computer is activated by interrupt.
Computer includes IO, Memory, CPU.
分区 OS和计算机结构 的第 2 页
计算机系统结构
2016年10月30日
20:43
1 计算机系统组织
1.1 中断interrupt
事件的发生通常通过硬件或者软件中断来表示。硬件可以随时通过系统总线向CPU发出信号,
来触发中断。软件通过执行特别操作如系统调用system call来触发调用。
硬件:随时中断。
软件:调用系统system call。
1.2 I/O structure
计算机程序必须在内存(随机访问内容random access memory,RAM)中以便于运行。内
存是处理器可以直接访问的唯一的大容量存储区域。通常是使用动态随机访问内存DRAM的
半导体技术来实现。
load指令将内存中字移到CPU的寄存器中,store能将寄存器的内容移到内存。
缺点:内存终究太小,无法长久存储大量数据和程序;内存是易失性存储。所以需要硬盘作为
辅存。
同步I/O:程序中断后要等待I/O完成才能继续执行。
异步I/O:I/O过程中程序继续执行,I/O完成后再做其他处理。
DMA:direct memory access,直接在内存和设备间传输整块设备,无需CPU频繁干涉,有
效减少中断次数。
2 操作系统几大功能模块
进程管理:执行中的程序称之为进程。进程需要一定软硬件资源完成其任务。这些资源由操作
系统分配。
内存管理:记录内存那些部分正在被使用以及被谁使用;决定那些进程可以装入内存;根据需
要分配和释放内存。
存储管理:包括I/O管理、文件管理、辅存管理、高速缓存管理等等。
命令解释系统Command-Interpreter Systems
分区 OS和计算机结构 的第 3 页
安全保护:保护:一种控制进程或用户对计算机系统资源的访问限制;安全:防止系统不受外
部或者内部攻击。
3 操作系统提供服务
第一类:方便用户,对用户很有用:
用户界面:user interface,UI;包括命令行界面和图形用户界面。
程序执行
I/O操作
文件系统控制
通信:进程间信息交换。
错误检测
第二类:确保系统本身可以高效执行:
资源分配
统计:统计用户资源。
保护和安全
操作系统服务大部分都是通过系统调用来实现的。
4 系统调用system call
系统调用提供了操作系统提供的有效服务界面。是操作系统系统的服务编程接口。操作系统的
主要功能是为管理硬件资源和为应用程序开发人员提供良好的环境来使应用程序具有更好的兼
容性,为了达到这个目的,内核提供一系列具备预定功能的多内核函数,通过一组称为系统调
用(system call)的接口呈现给用户。系统调用把应用程序的请求传给内核,调用相应的的内
核函数完成所需的处理,将处理结果返回给应用程序。
程序员大部分时候使用高级application program interface (API)来设计程序而非系统调用。
原因如下:可移植性,使用API的程序可以在支持相同API的系统上执行,而无需关注更底层
的系统调用的差别;系统调用更加困难和注重细节,而API封装的很好。
API: Win32 for windows, POSIX API, Java API.
系统调用往往需要参数,向操作系统传递参数的三种方法:
寄存器传递;参数在内存块或者表中,寄存器传递地址;参数被压入堆栈,并由操作系统弹
出。
系统调用类型:进程控制;文件管理;设备管理;通信;信息维护。
分区 OS和计算机结构 的第 4 页
5 系统程序System Programs
系统提供了一个方便的环境用户程序开发和执行。包括文件管理,状态信息,文件秀嘎,程序
语言支持,程序装入和执行,通信。
6 操作系统结构
操作系统是一个庞大而复杂的软件。
简单结构:没有一个准确定义的结构;受限硬件和软件;没有清晰的系统结构。比如MS-
DOS,Original UNIX。
分层方法:系统被分为多个层次,每层使用底层提供的服务。
微内核:所有没基本部分从内核中移除,并实现作为系统应用或者用户程序。优点是扩展性,
便携性,安全性,可靠性提高;缺点是性能下降。
模块:内核由一系列模块组成,运行时动态链接。
7 虚拟机
虚拟机延伸于前面提及的分层系统结构。其基本思想是将单个计算机的硬件抽象为几个不同的
执行部件,从而使得每个独立的执行环境似乎都在自己独立的计算机上执行一样。
虚拟机使得在并行不同执行环境时能共享相同硬件。
8 系统生成System Generation
9 系统启动System Boot
装入系统内核以启动计算机过程称为引导。绝大多数计算机系统都有一小块代码,称为引导程
序,可以定位内核并载入执行。
---一般存储在rom或者可擦写rom中;
---开机或者重启时载入;
---诊断机器状态;
---初始化硬件;
---载入操作系统内核即操作系统。
分区 OS和计算机结构 的第 5 页
进程管理
2016年10月30日
20:54
多个程序同时执行条件:
内存共享;CPU复用;涉及到内存管理,进程管理,文件管理,I/O管理。
程序串行执行:顺序性,封闭性,可再现性。
程序并行执行:间断性,开放性,不可再现性。
1 一些基本概念
如何称呼CPU的活动?分时系统称为用户程序或者任务(tasks),批处理系统使用作业
(jobs)。
程序:被动实体,存储在硬盘上的包含一系列指令的文件。
进程:活动实体,程序的执行。
为什么要有进程?
答:多程序同时执行具有间断性,所以要求在进程暂停运行时记录程序的现场,方便下次正确
继续运行;多程序同时执行有资源共享,要求能够对资源的共享情况进行记录;为保证程序的
正确并发执行,必须将进程执行看成某种对象,对其进行描述并加以控制。再一次强调,进程
不是程序,而是程序的执行。
一个进程包括:text section: program code,program counter and other registers,
stack,heap,data section。
2 进程特性
动态性:最基本特性;并发性:多道;独立性:独立运行单元;异步性:不可知的速度向前推
进;结构特征:程序段、数据段、进程控制块。
3 进程状态
三状态模型:
ready (就绪):万事俱备,只欠CPU;
running (执行);
waiting(等待, block-阻塞, sleeping-睡眠)。
分区 OS和计算机结构 的第 6 页
五状态模型:
除上面三种基本状态新增:新的状态和终止状态。
4 Process Control Block (PCB)
每个进程在操作系统中使用进程管理模块Process Control Block (PCB)来表示。PCB由操作系
统进程管理模块维护,常驻内存;操作系统根据PCB控制管理并发执行的进程。
PCB是进程存在的唯一标志。
PCB包含以下信息:
进程状态:就绪,等待?
进程标号:唯一标识。
程序计数器:程序下一条指令地址。
CPU寄存器:体系结构不同,略有不同。
CPU调度信息:优先级,调度队列指针等等。
内存管理信息:基址,界限寄存器值,页表,段表等。
记账信息:CPU时间,实际使用时间等等。
I/O状态信息:打开文件列表,分配给进程I/O设备表等。
5 进程调度Process Scheduling
多进程并发的目的是为了最大化CPU利用率。time sharing的目的是为了进程间频繁切换,使
用户可以和各个进程交互。而调度程序挑选一个适合的进程获得CPU。
5.1 调度队列
作业队列:系统中所有进程队列。
就绪队列:驻留内存中就绪、等待运行的进程序列。
设备队列:等待特定I/O设备的进程列表。
5.2 调度程序
长期调度程序:Long term scheduler (job scheduler),从磁盘缓冲池中选择一个进程并装
入内存准备执行。执行频率较低,一般只有但进程离开系统时,才需要长期调度程序执行,有
几分钟之隔。
分区 OS和计算机结构 的第 7 页
短期调度程序:Shor term scheduler (CPU scheduler),从准备执行的进程中选择进程并为
之分配CPU。执行频率高。
进程分为I/O密集型和CPU密集型。长期调度程序有必要选择合理的I/O密集型进程和CPU密集型
进程的组合,以保证系统平衡,达到最好的性能。
中期调度程序:Medium Term Scheduler,将进程从内存中移除,从而降低索道程序设计的
程度。之后进程可以被重新调入内存,并从中断处继续执行。即所谓swapping交换。
6 上下文交换Context Switch
将CPU切换到另一个进程需要保存当前进程的状态并恢复另一个进程的状态,这一任务称为上
下文切换。
当中断发生,会使CPU从当前任务改变为运行内核子程序。发生中断时,系统需要保存当前运
行在CPU中进程的上下文,从而在其处理完后能恢复上下文。
进程上下文使用PCB表示,包括CPU寄存器值,进程状态,和内存管理信息等。通常执行一个
状态保存(state save)来保存CPU当前状态,之后执行状态恢复(state restore)重新开始
运行。
上下文切换时纯粹开销,严重依赖硬件。
7 进程操作Operations on Processes
在大部分系统中,进程能够同时执行,也能被动态创建和删除。所以系统必须提供进程创建和
进程终止的机制。
7.1 进程创建
父进程创建子进程,子进程又创建其他进程,形成一颗进程树。
大部分操作系统使用unique process identifier (PID)来标识进程。
图片pass
子进程和父进程:
资源共享:全共享;部分共享;完全不共享。
分区 OS和计算机结构 的第 8 页