操作系统 第一章

操作系统 第一章

1.1

操作系统的概念?

现代计算机分为四层 硬件 OS 应用程序 用户
操作系统是为了提供必要的服务而设计的最底层软件的集合。

操作系统有四大特点

CSVA
并发 Concurrence
宏观上并行,微观上并发。
共享 Share
资源的时分复用(CPU)和空分复用(存储器),外设
CS 是OS的最根本特性。二者相辅相成
虚拟 Virtual
由于资源的不足,需要对一部分资源进行逻辑上的虚拟。
虚拟CPU,虚拟存储器,等等。
异步 Asynchronism
指的是程序在运行过程中总是间断地、不连续地执行,自然其执行是不均匀、不同步的。

操作系统的三大任务

对于计算机资源的管理。
四大管理:处理机、存储器、设备、文件管理。
其中文件的管理其实可以不算在微内核中。

向用户提供接口
命令接口
Terminal/ ms-dos/ cmd.
向用户提供及时反馈或是批处理的功能。其权限在用户态。

程序接口(系统调用)see 1.3
为程序使用系统功能提供了必要的入口。一般性的用户程序在运行过程中是不能访问这些系统功能的。

作为计算机硬件的拓展,提高用户的可用性。

1.2 操作系统的发展历程

A. 单人操作
此时的计算机的资源为一个用户所独占。但是,相应地,CPU的利用率和吞吐量极低。
Q: 吞吐量的定义?

B. 出现了批处理功能
单道批处理系统
允许批处理输入,降低了人机交互之间I/O不对等的问题,但是CPU的利用率依然很差,长时间需要等待I/O中断的执行。

多道批处理系统
在I/O等中断发生的同时通过进程调度的方式将CPU的使用权交付给正在等待程序,极大地提高了CPU的利用率,但是用户不能知晓当前CPU运算到了何处、也不能打断程序的执行。

C. 分时操作系统
为了及时响应用户的需求,出现了分时操作系统。这种操作系统引入了时间片的概念,这一概念需要系统的时钟管理功能,这部分是位于系统内核中的。
而在分时操作系统中,用户的请求之所以能被及时反馈的原因是,每个程序时间片结束时如果还没有执行完成的话,进程调度程序将会强行将CPU的使用权交付给优先级更高的进程,比如说用户的请求。

D. 实时操作系统
有些请求,如军事请求、气象请求等,其需要系统及时作出反应。虽然时间片在宏观上看来其时间跨度已经足够小,但是在更加精细的工程条件下,这种时间间隔依然是不足够的。实时操作系统应运而生。在这种系统下,优先级高的程序会打断优先级低的程序,CPU转向执行更高级别的任务。这种实时响应的性质的缺点是,由于这些工作的特殊性质,CPU的性能必然得不到完全的发挥。

E. 服务器系统、分布式系统

F. 个人微操作系统

1.3 程序运行的环境

首先,计算机上运行的程序分为用户程序和系统程序。

二者能执行的命令自然是不同的。用户程序只能执行非特权指令,而系统程序既可以执行非特权指令,又可以执行特权指令。
那么,为了使得用户不能执行特权指令,操作系统出现了两个运行态:内核态和用户态,用于特权指令的区别。
二者如何切换呢?具体细节会在计算机组成原理中说明,现在只需知道,CPU内部具有一个运行标识位,用于标识操作系统目前是否运行于用户态。自然地,高电平1意味着用户态,低电平0意味着内核态。当用户提出一个转入内核态请求时,这个标识位进行复位,随后进行一系列中断前的现场保存操作,最后执行中断命令开中断、执行中断程序、恢复中断现场。

那么,何为内核?

内核指的是某一个操作系统所应该具有的最底层的功能集合。现代化操作系统一般采用分层编码的方法。在这种语境下,我们定义操作系统的最低两层为操作系统的内核,其内容为:
最底层:1. 中断及其恢复 2.时钟管理 3.设备驱动
次底层:1. 设备管理 2. 存储管理 3. 进程管理
这即是操作系统内核的粗略定义。
操作系统内核应该具有的四大基本功能是:

  1. 时钟管理
  2. 中断及其恢复
  3. 原语
  4. 系统管理的数据结构及其调用
    时钟管理是各种系统操作的基石,如分时操作系统需要时钟来划分时间片,实时操作系统需要时钟来观察due time,等等。
    原语指的是操作系统所规定的一系列不能被分割的操作的集合. 如创建进程Creat,等等。

下面介绍中断。

中断本质上,是对于CPU查询I/O输入方式的一种改进。中断方式下,CPU当且仅当I/O设备发出就绪信号后才会对I/O设备进行读取。
这种改动的最大益处在于,极大地改善了CPU和I/O速度不平衡的现状,使得较快的CPU和较慢的I/O设备并行地运作。
但是,中断为我们提供了程序设计的新思路。一般地,中断往往搭配着输入输出的进行。容易发现,输入输出是与设备紧密相关的,那么它必然是内核态的一种操作。于是,我们是否可以将中断定义为不光是处理I/O输入接口,还可以成为用户/内核态切换的桥梁呢?
事实上,答案是肯定的。现代操作系统将中断的作用最大化。下面介绍中断的分类。
中断分为外中断和内中断。外中断又称中断Interrupt,指的是外部设备(硬件)变化所导致的操作系统对于运行态切换的需求。外中断又分为两种,可屏蔽中断INTR和不可屏蔽中断NMI。这两个简称是总线的线路名。
内中断指的是由于程序运行错误导致的,操作系统需要进入内核态处理错误信息的中断请求。内中断又叫异常Exception。主要分为软件中断和硬件中断。软件中断指的是由于软件原因导致的操作态转换请求,如:DivideByZeroException(Fault),scanf(Trap)。Fault指的是程序运行过程中出现的预期之外的错误,Trap则是用户主动进行系统调用的操作类型。硬件中断主要涵盖了软件运行过程中引起的硬件运算不匹配的情况,如奇偶校验位错误等。

最后对系统调用进行一定的说明。

在刚才对中断的说明中我们不难发现,系统调用,是用户能够主动请求进入中断,即切换系统到内核态执行内核功能的唯一途径。实际上,即便是进入了内核态,这些内核函数依然是由操作系统执行后,将结果返回给用户的。用户是不可能进行内核态操作的,即便如Linux下sudo后,也是操作系统对用户态的操作权限的高度放宽。
系统调用的基本过程,见操作系统课本323页。这里给出大致过程。
用户进行系统调用后,硬件和系统首先进行基本的现场保护。保护过后,系统调用trap指令(访管指令),此时系统进入了中断态。随后,根据用户的访管指令,系统执行中断向量表中对应的中断程序。最后,程序执行完成后,由操作系统执行程序现场的恢复。

1.4 操作系统的结构

分层结构

优点 好编写好维护 缺点 效率低 冗余 依赖关系死板

模块化

优点 极大优化了程序编写周期 缺点 需要详尽的设计过程

宏内核

操作系统在发展过程中内核逐渐扩大,出现了软件危机。这时候微内核的优势体现了出来。

微内核

Key idea: 精简功能,子功能留给服务器,消息传递。这里的服务器和计算机网络里的服务器作用一致,原理不一致。

只保留操作系统基本的功能,如中断,部分的存储管理,部分的进程管理,其他的部分留给对应的服务器去做。

优点: 1. 灵活扩充 2. 安全稳定 3. 消息传递,分布式
缺点: 效率太差

四个方面 1. 微内核 2. CS模式 3. 机智策略分离 4. Objective-Oriented

外核

1.5 操作系统的启动过程

  1. 唤醒cpu
  2. 硬件自检
  3. 唤醒系统所在磁盘
  4. 加载MBR
  5. 找到对应分区
  6. 加载PBR
  7. 启动加载管理器
  8. 启动操作系统。

1.6 虚拟机的概念

虚拟机虚拟出驱动、内存等一个操作系统所必须的部件。
第一代操作系统凌驾于硬件设备之上,运行于等价于现代操作系统的层次。
第二代操作系统可以看作是宿主操作系统中的一个进程。
虚拟CPU的概念:没有虚拟CPU技术的虚拟机由虚拟系统管理器模拟该系统调用的功能,有虚拟CPU技术的虚拟机返还给宿主系统进行处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值