第一章——操作系统概论

第一章——操作系统概论

  • 1.1 操作系统的定义
  • 1.2 操作系统的形成与发展
  • 1.3 操作系统功能、服务和特性
  • 1.4 操作系统的进一步发展
  • 1.5 用户与操作系统接口
  • 1.6 操作系统的运行方式
  • 1.7 操作系统的设计规范和结构设计

1.1 操作系统的定义

计算机系统的组成

  • 计算机系统从下到上划分为四个层次。
  • 单向调用关系:外层的软件必须以事先约定的方式调用内层软件或硬件提供的服务。称这种约定为接口。

应用程序 ⊃ \supset 系统应用 ⊃ \supset 操作系统 ⊃ \supset 硬件

用户态——用户进程、系统进程、Windows子系统进程Csrss.exe

核心态——操作系统内核(Ntoskrnl.exe)、执行体、内核、Win32K.sys、NTFS.sys

操作系统的定义

  • 从操作系统设计者的角度——OS是由一系列程序模块组成的一个大程序。依据各种管理和调度策略,对计算机的软、硬件资源进行统一的管理和调度,合理地组织计算机的工作流程,以提高资源的利用率。
  • 从用户角度看——是为了建立用户与计算机之间的接口而为裸机配置的一种系统软件,为用户提供了良好的使用环境
  • 操作系统只包含操作系统内核。如Windows系统的Ntoskrnl.exe。http://www.kernel.org 下载Linux内核

操作系统的设计目标

  • 方便性:方便用户使用计算机。用户通过操作系统来使用计算机。
  • 有效性:使计算机系统能高效可靠地运转,提高系统资源的利用率。
  • 还要便于操作系统的设计、实现和维护

1.2 操作系统的形成与发展

  • 1.2.1 顺序处理(手工操作阶段)
  • 1.2.2 简单的批处理系统
  • 1.2.3 多道成批处理系统
  • 1.2.4 分时系统
  • 1.2.5 实时系统
  • 1.2.6 嵌入式系统

1.2.1 顺序处理(手工操作)

  • 20世纪40年代~50年代中期
  • 计算机:CPU主存、卡片输入机、打印机、带有显示灯和开关的操作控制台。
  • 没有操作系统。程序员直接操作计算机硬件,调度作业运行。
  • 程序:二进制程序;通过打孔的纸带或卡片
  • 人工负责计算机的调度——用户使用计算机时,首先向机房负责人说明,由机房负责人为他安排上机时间,并预先登记在一张纸上。其中包括各用户几点上机、大约使用计算机多长时间等。
  • 人工负责作业编排顺序——用户自己安排上机所需的各种程序、数据以及上机的步骤
  • 缺点
    • 一个用户独占全机资源;
    • CPU等待人工操作,浪费大量的人力和机器的时间,系统利用率很低。

1.2.2 简单的批处理系统

  • 20世纪50年代后期~60年代中期
  • 有一个监控程序软件常驻内存(主存)
  • 操作员将多个作业按序成批地放在一个输入设备上。
  • 监控程序自动控制输入设备一次装入一道作业,并启动运行。(单道批处理
  • 早期联机批处理、脱机批处理:联机指作业的输入计算和输出都在CPU直接控制,脱机指用卫星机专门出理外部设备输入输出、
  • 特点
    • 批量:作业队列
    • 自动:识别作业,装入,撤出
    • 单道:依次,串行

1.2.3 多道成批处理系统

  • 单道批处理不能让CPU忙碌起来,多道批处理能提高CPU的利用率

  • 随着硬件通道、中断、缓冲技术等的出现,使得计算机在组织结构上发生了重大变革。使原先以CPU为中心的体系结构,转变为以主存为中心。 使多道程序设计技术成为可能。

  • 多道程序设计:是指在主存同时存放多个作业,同时处于运行状态,共享系统中的各种资源。

  • [通道]:独立于CPU,专门用来控制输入/输出设备的I/O处理机,比CPU便宜。连接着主存和外设。使CPU和外设并行操作。当需要输入/输出时,CPU向通道发命令,通道控制外设在主存和外设之间传输信息,传输完成后,通过中断机构通知CPU。

  • 在单CPU系统中。宏观上,各个作业都已开始运行,但都未运行完;微观上,各个作业是串行执行的,在任何特定时刻,只有一个作业在处理机上运行。(宏观上并行,微观上串行。)

  • [中断]:当I/O设备完成传输后,通过中断机构向CPU报告完成情况。

  • [缓冲技术]:在主存设置缓冲区,来缓存用户的输入和输出,改善I/O设备和CPU之间速度不匹配的问题。

  • 引入多道程序设计技术的根本目的是提高CPU的利用率

衡量批处理系统的性能指标
  • 资源利用率:指在给定时间内,系统中某一资源(如CPU、存储器、外部设备等)实际使用时间所占比率。
  • 吞吐量(Throughout):指单位时间内系统所处理的信息量。通常以每小时或每天所处理的作业个数来度量。
  • 周转时间:指从作业进入系统到作业退出系统所用的时间。
批处理系统特点
  • 多道:内存同时存放多道程序

  • 并行:宏观上

  • 串行:微观上

  • 优点: 系统吞吐量大,资源利用率高。适合计算量大、自动化程度高的成熟作业。

  • 缺点: 用户与作业无法交互,作业平均周转时间较长。

1.2.4 分时系统

  • 工作方式:一台主机连接有若干个终端。用户交互式地向系统提出命令请求,系统接受命令,采用时间片轮转方式处理请求,并在终端上显示结果。如在大型数据库上的查询。
  • 分时:多用户分时使用CPU。将CPU的单位时间(如1秒钟)划分成若干个时间片。
分时系统的特点
  • 同时性:若干用户同时使用一台计算机。
  • 独立性:每个用户占有一台终端,独立操作,感觉不到别的用户存在。
  • 交互性:用户可通过终端与系统进行人机对话。
  • 及时性:用户的请求能在较短时间内得到响应。(响应时间:从用户发出请求到系统开始响应所需的时间)。

1.2.5 实时系统

  • 是指计算机能对随机发生的外部事件做出及时的响应和处理。是一个专用系统。
  • 不以作业为处理对象,只有几个由外部事件触发的任务。
    • 实时过程控制:工业生产中的自动控制,飞机导航、导弹发射等。
    • 实时信息处理:民航机票的预订、查询,银行系统的借贷,情报信息检索等系统。
实时系统特点
  • 实时性。其响应时间由被控制对象所能承受的延迟来确定。
  • 可靠性。要具有容错能力,可采用双工机制:一台主机;一台后备机。
  • 确定性。是指系统按照固定的、预先确定的时间执行指定的操作。

1.2.6 嵌入式系统

  • 以实际应用为中心、以计算机技术为基础、软硬件可裁剪的专用计算机系统
  • 软件要求固化存储。
  • 通常是一个多任务可抢占式的实时操作系统,只有满足实际需要的有限功能,如任务调度、同步与通信、主存管理、时钟管理等
  • 嵌入式Linux,Windows CE。

1.3 功能、服务和特性

  • 三种基本类型:批处理系统;分时系统;实时系统。
  • 通用操作系统:兼有批处理、分时和实时三者或其中两者的功能。
    • [如]分时和批处理相结合,将分时任务作为前台任务,将批处理作业作为后台任务,便是分时批处理系统。

操作系统的功能

  • 处理机管理:进程管理。处理机如何调度的问题:FCFS、优先级、时间片轮转?

  • 存储器管理:主存管理。存储分配、存储保护、主存扩充。(寄存器,高速缓存,内存,外存)

  • 设备管理:涉及对系统中各种输入、输出设备的管理和控制。分配设备,控制设备传输数据。

  • 文件管理:将程序、数据、操作系统软件等组织成文件,存放在磁盘或磁带上,方便用户访问。

  • 为了管理系统资源,操作系统必须掌握系统资源的当前状态信息。

    • 进程----进程表
    • 存储器----存储表
    • I/O设备----I/O设备表
    • 文件----文件表

操作系统的特性

  • 并发性:是为了提高计算机的处理能力而采用的一种时间上重叠操作的技术。是指系统中存在着若干个逻辑上相互独立的程序,都已被启动执行,都还没有执行完,竞争系统资源。

  • 共享性:是指系统中的资源可供系统中多个并发执行的进程共同使用。如打印机、磁带机、磁盘等。支持系统并发性的物质基础是资源共享

  • 虚拟性:把共享资源的一个物理实体变为若干个逻辑上的对应物。如,CPU的分时共享;虚拟存储器技术。

  • 异步性(随机性):有限的资源共享使并发进程之间产生相互制约关系。各个进程何时执行、何时暂停、以怎样的速度向前推进、什么时候完成等都是不可预知的。

并发、共享、虚拟、异步

操作系统提供的服务

  • 用户接口:用户通过OS来使用计算机
  • 程序执行:装入内存执行,结束执行
  • I/O操作:可能涉及到文件或I/O设备
  • 文件系统操作:向用户提供按名存取文件
  • 通信服务:进程之间(共享内存/消息传递)
  • 错误检测和处理:能检测和处理错误
  • 资源分配:多进程并发,资源共享
  • 记帐:统计用户对系统资源的使用情况
  • 保护:控制用户有限制地存取系统资源

用户接口

1.4 操作系统的进一步发展

  • 个人计算机操作系统

  • 多处理机操作系统

  • 网络操作系统

  • 分布式操作系统

  • 虚拟化与云计算

  • 智能手机操作系统

  • 物联网操作系统

个人计算机操作系统

  • 单用户单任务OS:只允许一个用户上机、只允许用户程序作为一个任务运行。如 MS-DOS
  • 单用户多任务OS:只允许一个用户上机,但允许用户有多个任务,并发执行。如Windows
  • 多用户多任务OS:允许多个用户通过各自的终端,使用同一台主机,共享系统资源,每个用户又可有多个任务,并发执行。如UNIXLinux

单用户单任务——MS-DOS(单单)

单用多任务——Windows(单多)

多用户多任务——Unix、Linux(多多)

多处理机操作系统

  • 多处理机采用紧耦合方式进行连接,共享主存
    • 非对称多处理(ASMP):主处理机运行操作系统,其他处理机运行用户作业,主处理机为其他处理机分配和调度任务,主从模式。
    • 对称多处理(SMP):操作系统和用户程序可安排在任何一个处理机上运行,各处理机共享主存和各种I/O设备。

网络操作系统

  • 网络中的各台计算机都配有各自独立的操作系统,网络操作系统把它们联系起来,并为它们提供通信网络资源共享

  • Windows的自上而下的网络栈:网络应用程序、网络API、网络API驱动程序netbios.sys、协议驱动程序tcpip.sys等。与I/O系统和标准API紧密地集成在一起。

  • 网络操作系统的模式:

    • 客户/服务器(Client/Server)模式。服务器是一个瓶颈。
    • 对等模式(Peer-to-peer):系统内的节点机(nodes)是对等的,既可作为客户机,又可作为服务器。在网络中既无服务处理中心,也无控制中心。

从Clent/Server模式可以想到网络操作系统

分布式操作系统

  • 分布式系统:是由多个分散的计算机通过网络连接而成的一个统一的计算机系统。可以获得极高的运算能力和广泛的数据共享。
  • 要求连网的多机有一个统一的操作系统
  • 没有标准协议。
  • 完全分布式系统仍在研究中。

机群(cluster)是一种分布式系统。机群节点私有OS。有一层软件运行在机群节点之上。

智能卡操作系统

  • 智能卡中隐藏着一个微型操作系统。
  • 智能卡中的集成电路包括:中央处理机、存储部件、对外联络的通信接口。
  • 智能卡实际上是一台单片机系统。有非常严格的运行能耗和存储空间的限制(从几KB到几百KB)。

虚拟化与云计算

  • 虚拟化主要是指将一台物理计算机变成多台虚拟计算机,每台虚拟机可以运行独立的操作系统和应用程序。

1.5 用户与操作系统接口

  • 操作接口命令语言窗口界面是用户使用计算机系统的主要接口。
  • 编程接口系统调用是用户与操作系统之间的编程接口。

命令语言、窗口界面——cmd

系统调用——C/C++、Java

命令语言

  • 操作系统提供一个命令解释程序来支持命令语言的解释执行。执行用户当前输入的命令。用户态
  • Linux的1号进程为每个终端用户建立一个运行shell命令解释程序的终端进程,该进程不断地处理用户发来的命令。

窗口界面

  • 系统初始化时,Windows为终端用户生成了一个运行Explorer.exe程序的进程,它是一个具有窗口界面的解释程序,打开一个桌面窗口。
  • 当点击桌面内的某个实用程序时,解释程序就会产生一个新进程

系统调用

  • 操作系统内核向用户提供了一组系统调用接口。用户通过系统调用接口运行系统内核里的一些子程序
  • Windows系统提供的Win32 API函数集合,是一些库函数,由库函数去调用系统调用。文档化,易使用。

常用的系统调用

  • 进程控制
    • Linux: fork()/wait()/exec()
    • Windows: create_thread()
  • 文件管理
  • 设备管理
  • 其他服务
122

注意什么时候切换到核心态,什么时候切换回用户态

系统调用——切换为核心态执行内核子程序

核心态/用户态

  • 在计算机中存在两类性质不同的程序:操作系统内核程序;用户程序
  • 前者是后者的管理者和控制者,所以前者应享有某些特权。为此将CPU的运行状态分为核心态(管态)和用户态(目态)
  • 处理机状态字(PSW)中有2个执行方式位。00为核心态,11为用户态。
  • 在核心态下, 允许执行处理机的全部指令集,访问所有的寄存器和存储区;
  • 在用户态下,只允许执行处理机的非特权指令,访问指定的寄存器和存储区。
  • 用户态到核心态的转换硬件完成;核心态到用户态的转换内核程序执行后完成。
  • 操作系统的大部分功能模块运行在核心态,有些功能模块通过创建用户级进程运行在用户态,例如, Windows子系统进程Csrss.exe,为用户提供窗口界面。
  • 操作系统运行在核心态下, 允许执行处理机的全部指令集(包括: 特权指令和非特权指令),访问所有的寄存器和存储区
  • 普通程序运行在用户态下,只允许执行处理机的非特权指令访问指定的寄存器和存储区
  • 特权指令:关系系统全局的指令,如存取和操作CPU状态启动各种外部设备设置时钟时间关中断清主存修改存储器管理寄存器改变用户方式到核心方式停机指令等。只能操作系统调用,不允许用户使用。

硬件——用户态 → \rightarrow 核心态

内核程序——核心态 → \rightarrow 用户态

用户态只允许执行非特权指令,可以访问寄存器和存储区,但不是全部的寄存器和存储区

注意什么时候是特权指令,什么时候是非特权指令

系统调用的一般步骤

  • 通过陷入Trap(或异常Exception)使系统切换到核心态;
  • 将程序计数器(PC)和处理机的当前状态存入任务的堆栈中;
  • 将系统调用号存入核心堆栈中;
  • 执行汇编代码来保存通用寄存器中的内容;
  • 调用相应的操作系统例程来完成系统调用;
  • 返回用户程序继续执行。

系统调用的特点

  • 一般涉及核心资源或者硬件的操作
    • 如进程创建/结束、内存空间分配、外设的分配使用等
  • 运行在核心态
  • 每个系统调用具有唯一的编号
  • 调用过程会产生中断(自愿的中断)

1.6 操作系统的运行方式

  • 用户态到内核态的切换:中断、异常
  • 中断(硬):异步事件。硬件发信号中断CPU,CPU转去执行中断处理程序。认为是正常的功能。
    • I/O中断、时钟中断
  • 异常(软):同步事件。是程序自己产生的特殊事件。不能被屏蔽,一旦出现应立即处理。
    • 由于程序错误:如程序的非法操作码地址越界除数为0存储器管理中的页面失效
    • 由于系统调用

区分什么是中断、什么是异常

中断——I/O中断、时钟中断

异常——非法操作码、地址越界(频率高)、除数为0(频率高)、页面失效(频率高)

中断响应过程

  • 识别中断源
    • 依据中断号,查中断向量表,查找对应的中断服务例程
  • 保护断点和现场
  • 装入中断服务程序的入口地址(CS:IP)
  • 进入中断服务程序
  • 恢复现场和断点
  • 中断返回

中断响应的实质

  • 交换指令执行的地址
  • 交换了CPU的执行态
  • 涉及的工作:
    • 现场保护和恢复
    • 参数传递(通信)

1.7 操作系统的设计规范和结构设计

  • 系统效率:体现系统效率的指标有资源利用率、吞吐量、周转时间、响应时间等。
  • 系统可靠性:系统发现、诊断和恢复故障的能力。
  • 可移植性:指从一种硬件环境移植到另一种硬件环境,系统仍能正常工作。
  • 可伸缩性:系统对添加软、硬件资源的适应能力。
  • 兼容性:系统执行为其他OS或为同一系统早期版本所编写的软件的能力。
  • 安全性:系统应具有一定的安全保护措施。

这6个感觉要背背

操作系统结构设计

  • 单块结构
  • 分层结构
  • 微内核结构
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值