什么是操作系统? 计算机系统的组成 计算机系统体系结构 操作系统的体系结构
1. 什么是操作系统?
计算机系统:由计算机硬件(计算设备,存储设备,输入输出(IO)设备)、软件(app)和数据组成
计算机系统层次结构
Interface(接口、界面、介面)
- 接口时连接两个物体的边界,通过这个介面,两边可以很好的对话
- 硬件-硬件
- 软件-硬件
- 软件-软件
Virtual Machine
- 操作系统x向用户提供一个容易理解和使用的”计算机”(虚拟的),用户对这个“计算机”的操作都将被操作系统转成对计算机硬件的操作。
1.1 操作系统的功能
- 从用户角度
- 提供良好的用户界面
- 标准的函数库
- 使得编程更加方便,并且不容易出错
- 从系统角度
- 管理资源
- 硬件资源(处理机,存储机,设备)
- 信息资源(文件)
- 解决申请资源时产生的冲突
-
1.2 操作系统的定义
操作系统:
操作系统是管理计算机硬件的程序,它还为应用程序提供基础,并且充当计算机硬件和计算机用户的中介。
- 大型机的操作系统设计的主要目的是充分优化硬件的使用率,个人计算机的操作系统是为了能支持从复杂游戏到商业应用的各种事物,手持计算机的操作系统是为了给用户提供一个可以与计算机方便地交互并执行程序的环境。
操作系统是一组控制和管理计算机软硬件资源,合理对各类作业进行调度,以及方便用户的程序集合
2. 计算机系统的组成
硬盘:硬盘的内部结构 硬盘如何读写数据: 磁盘参数: 主引导扇区(boot Sector):
BootStrap
Bootstrap of Computer 加载操作系统的引导
- 打开电源
- CPU将控制权交给BIOS(基本输入输出系统,存放在CMOS中)
- BIOS运行一个程序:通电自测试程序
- BIOS找到磁盘的引导区,将其中的主引导程序bootloader装入内存。(主引导程序是一段代码,它可以将OS余下部分装入内存)
- 引导操作系统结束,操作系统接管计算机
- 操作系统等待时间发生。。。。。
2.1 计算机系统操作
现代通用计算机系统由一个或多个CPU和若干个设备控制器通过共同的总线相连而成。 打开电源或重启—>运行初始化程序(引导程序)—>定位操作系统并将其装入内存—>执行第一个进程
- 引导程序:通常位于ROM或者EEPROM,称为计算机硬件中的固件。用来初始化系统的所有部分(CPU寄存器,设备控制器和内存)。
- 中断:硬件可随时通过系统总线向CPU发出信号,出发中断。软件通过系统调用(或者其他特别操作)触发中断。
发生中断——调用一个通用子程序检查中断信息——使用中断处理指针表(中断向量)——间接调用中断处理子程序- 现在的操作系统都是以中断为驱动的。
中断流程:
内存(主存)事处理器可以直接访问的唯一大容量存储区域
- 辅存:一般是磁盘。(因为内存太小,而且是易失性存储设备。)
- 易失性:断电时,会丢失内容
2.3 I/O结构
DMA(直接内存访问)
- 用于告诉I/O设备,能够以接近内存速度传送信息。
- 设备控制器无需CPU干预直接将数据快从缓冲存储器直接传输到主存。
-
3. 计算机系统的体系结构
3.1 单处理系统
一颗主CPU,执行通用指令集
带有其他专用处理器,为特定设备服务,如:磁盘、键盘、图形控制器等。
定义:多处理器系统有多个紧密通信的CPU,它们共享计算机总线,有时还有时钟、内存和外设等
- 优点:
- 增加吞吐量、规模经济、增加可靠性。
分类:
定义:与多处理器系统一样,集群系统将多个CPU集中起来完成计算任务。然而,集群系统与多处理器系统不同,它是由两个或多个独立的系统耦合起来的。集群计算机共享存储并通过局域网络连接或更快的内部连接。
4. 操作系统结构
操作系统最重要的一点是要有多道程序处理能力。多道程序设计通过组织作业(编码或数据)使CPU总有一个作业在执行,从而提高了CPU的利用率。
实现的硬件保证:处理器和IO设备具备并行工作的能力
操作系统的三种基本类型
- Batch systems(批处理系统)
- Time-sharingsystems(分时系统)
-
4.1 批处理(多任务)系统
工作方式:
- 用户将作业交给系统操作员,系统操作员将许多用户的作业组成一批作业(jobs)之后输入到计算机中,在系统中形成一个自动转接的连续的作业流,系统自动、依次执行每个作业。最后由操作员将作业结果交给用户。操作系统:自动将控制从一个任务转到下一个任务。
- 分类:
- 单道批处理系统、多道批处理系统
- 批处理操纵系统优点:
- 作业流程自动化、效率高、吞吐量高。
批处理操纵系统缺点:
分时系统(或多任务)是多道程序设计的延伸。
- 共享需要一种交互计算机系统,它能提供用户与系统之间的直接通信。响应时间短(通常小于一秒钟)。
- 允许多用户共享计算机。由于每个动作或命令都较短,每个用户只需少量CPU时间,用户之间切换时间短,所以用户会感觉整个系统为自己所用。
分时操作系统与多道程序设计
- 多道程序设计:
- 为系统提供一种能力:在一个作业处于等待的时候可以允许CPU切换到另一个作业。使CPU忙碌起来。
- 多道程序系统提供了一个环境,以便充分使用各种系统资源(如 CPU、内存、外设),但是没有提供用户与计算机系统的交互。
- 分时系统(time sharing)(或多任务(multitasking))是多道程序设计的自然延伸。对于分时系统,虽然 CPU 还是通过切换作业来执行多个作业,但是由于切换频率很高,用户可以在程序运行时与其交互。
- 分时系统:
- 分时操作系统允许许多用户同时共享一台计算机。由于分时系统的每个动作或命令往往较短,因而每个用户只需少量 CPU 时间。随着系统从一个用户快速切换到另一个用户,每个用户都会感到整个系统只为自己所用,尽管它事实上为许多用户所共享。
- 分时操作系统采用 CPU 调度和多道程序设计,为每个用户提供一小部分的分时计算机资源。每个用户至少有一个程序在内存中。加载到内存并执行的程序,通常称为进程(process)。当进程执行时,它通常在执行较短的一段时间后,要么完成,要么需要进行 I/O 操作。
- I/O 可以是交互的,即输出是到用户显示器,输入来自用户键盘、鼠标或其他设备。由于交互 I/O 通常按人类速度(people speed)来进行,因此可能需要很长时间完成。例如,输入通常受限于用户打字速度,每秒 7 个字符对人类来说可能很快,但是对计算机来说太慢了。在用户进行交互输入时,操作系统为了不让 CPU 空闲,会将 CPU 切换到其他用户程序。
- 分时系统和多道程序需要在内存中同时保存多个作业。如果有多个作业可以加载到内 存,同时内存太小而不能容纳所有这些作业,那么系统就应做出选择(这个决定涉及作业调度(内存管理;job scheduling),将在后续章节中介绍)。操作系统从作业池中选中一个作业,并将它调入内存以便执行。内存同时保存多个程序,这需要一定形式的内存管理。
- 另外,如果有多个任务同时等待执行,那么系统应当做出选择。做出这样的决策称为 CPU 调度(CPU scheduling)。最后,在多个作业并发执行时,操作系统的各个阶段,如进程调度、磁盘和内存管理,应能限制作业之间的互相影响。这些讨论贯穿本教程
- 对于分时系统,操作系统必须确保合理的响应时间。这有时可以通过交换(swapping)来得到,交换可将进程从磁盘调入内存,也可将进程从内存调到磁盘。不过,虚拟内存(virtual memory)是实现合理响应时间的更为常用的一种方法,虚拟内存允许一个执行作业不必完全在内存中。
- 虚拟内存的主要优点是,用户可执行比物理内存(physical memory)大的程序。再者,它将内存抽象成一个庞大的、统一的存储数组,将用户理解的逻辑内存(logical memory)与真正的物理内存区分幵来。这种安排使得程序员不受内存空间的限制
- 分时系统也应提供文件系统。文件系统驻留在一组磁盘上,因此 也应提供磁盘管理。另外,分时系统需要提供机制,以便保护资源并防止不当使用。为了确保有序执行,系统必须提供机制,以便实现作业的同步和通信;它也可确保作业不会进入死锁,进而永远互相等待。
- 多道程序设计:
4.3 实时系统
- 定义:实时操作系统是保证在一定时间限制内完成特定功能的操作系统。
- 分类:
- 硬实时系统:硬实时要求在规定的时间内必须完成操作,这是在操作系统设计时保证的。
- 软实时系统:软实时则只要按照任务的优先级,尽可能快地完成操作即可。
4.4 操作系统的操作
4.4.1 操作系统的双重模式操作
为了区分操作系统代码和用户定义代码的执行,至少需要两种独立的操作模式:用户模式、监督程序模式(管理模式、系统模式、特权模式)。
将能引起损害的机器指令作为特权指令。用户模式下想要执行特权指令,硬件不会执行,会认为是非法指令,并以陷阱的形式通知操作系统。
系统引导时,硬件开始处于内核模式。接着,装入操作系统,开始进入用户模式。出现陷阱或中断,会进入内核模式。
转换到用户模式就是一个特权指令。设置至少两种单独运行模式的目的: 保证操作系统正确的运行
4.4.2 定时器
防止用户进入死循环或不调用系统服务。定时器在给定时间后中断计算机。操作系统将控制权交给用户之前,设置定时器。修改定时器的操作就是特权指令。