现代计算机系统由一个或多个处理器、主存、磁盘、打印机、键盘、鼠标、显示器、网络接口以及 各种其他输入/输出设备组成
软件 与 操作系统
底层是硬件。硬件包括芯片、电路板、 磁盘、键盘、显示器以及类似的设备。在硬件的顶部是软件。
计算机运行模式:内核态和用户态。
核心模式和用户模式 (管态和目态)
核心模式一般指操作系统管理程序运行的状态,具有较高的特权级别。
用户模式一般指用户程序运行时的状态,具有较低的特权级别。
处理器处于管态时全部指令(包括特权指令)可以执行,可使用所有资源,并具有改变处理器状态的能力。
当处理器处于用户模式时,就只能执行非特权指令。特权级别不同,可运行指令集合也不同。特权级别越高,可以运行指令集合越大。高特权级别对应的可运行指令集合包含低特权级的。
核心模式到用户模式的唯一途径是通过中断。
软件中最基础的部分是操作系统,它运行在内核态。在这个模式中,操作系统具有对所有硬件的完全访问权,可以执行机器能够运行的任何指令。
软件的其余部分运行在用户态下。在用户态下,只使用了机器指令中的一个子集。特别地,那些会影响机器的控制或可进行I/O(输入/输出)操作的指令,在用户态中的程序里是禁止的。
操作系统的用户接口程序(shell或者GUI),处于用户态程序中的最低层次。允许用户运行其他软件程序,如Web浏览器、电子邮件阅读器或音乐播放器等。
操作系统运行在裸机之上,为所有其他软件提供基础的运行环境。
什么是操作系统?
操作系统:是控制和管理计算机系统内各种硬件和软件资源、有效地组织多道程序运行的系统软件(或程序集合),是用户与计算机之间的接口。
1) OS是什么:是系统软件(一整套程序组成,如UNIX由上千个模块组成)
2) 管什么:控制和管理系统资源(记录和调度)
操作系统和普通软件(用户态)之间的主要区别:
如果用户不喜欢某个特定的电子邮件阅 读器,他可以自由选择另一个,或者选择自己写一个,但是他不能自行写一个属于操作系统一部分的时钟中断处理程序。这个程序由硬件保护, 防止用户试图对其进行修改。
看待操作系统三种观点
扩展机器的观点:
在机器语言一级上, 多数计算机的体系结构(指令集、存储组织、I/O和总线结构) 是很原始的, 而且编程很困难,尤其是对输入/输出操作而言。
如果仅仅是裸机,则仅有机器语言可供用户利用,机器语言是相当麻烦和晦涩的,更不要提使用机器语言操作内存、文件、外设等设备。
//C语言实现 main() { int a,b,sum; a=4;b=5; sum=a+b; } //机器语言实现 Debug: B8 04 00 //将数据04输入CPU的AX寄存器 05 05 00 //将AX寄存器内数据加上05 A3 00 20 //将AX寄存器内数据存入内存单元[2000]中 CC //设置断点
以磁盘文件操作为例:
1. 通过操作系统的资源管理器创建文件,并写文件。
2. 程序员通过编程,操作文件。
#include "stdafx.h" #include <fstream.h> int main(int argc, char* argv[]) { ofstream fout; fout.open("c:\output.txt"); fout << "大连理工大学" << " "; return 0; }
3. 通过汇编语言,BIOS系统底层接口实现。应用BIOS中断例程对磁盘进行读写
BIOS提供的访问磁盘的中断例程为int 13h
入口参数:
(ah)=int 13h的功能号(2表示读扇区、3表示写扇区)
(al)=读取的扇区数/写入的扇区数
(ch)=磁道号
(cl)=扇区号
(dh)=磁头号
(dl)=驱动器号 软驱从0开始,0:软驱A,1:软驱B; 硬盘从80h开始,80h:硬盘C,81h:硬盘D。
es:bx指向接收从扇区读入数据的内存区/将写入磁盘的数据
将0:200中的内容写入0面0道1扇区,汇编指令: mov ax,0 mov es,ax mov bx,200h mov al,1 mov ch,0 mov cl,1 mov dl,0 mov dh,0 mov ah,3 int 13h
几乎每个计算机用户都理解的一个抽象是文件。文件是一种有效的信息片段,诸如数码照片、保存的电子邮件信息或Web页 面等。处理数码照片、电子邮件以及Web页面等,要比处理磁盘的细节容易。 操作系统的任务是创建好的抽象,并实现和管理它所创建的抽象对象。
资源管理的观点
四大类资源:处理机、存储器、外设及信息(程序和数据等)
时间复用和空间复用方式实现资源共享:
时间复用
当一种资源在时间上复用时,不同的程序或用户轮流使用它。先是第一个获得资源的使用,然后下一个, 以此类推。例如,若在系统中只有一个CPU,而多个程序需要在该CPU上运行,操作系统则首先把该 CPU分配给某一个程序,在它运行了足够长的时间之后,另一个程序得到CPU,然后是下一个,如此进行下去,最终,轮到第一个程序再次运行。 至于资源是如何实现时间复用的,谁应该是下一个以及运行多长时间等—则是操作系统的任务。
空间复用
每个客户都得到资源的一部分,从而取代了客户排队。
通常在若干运行程序之间分割内存,这样每一个运行程序都可同时入住内存。
通过虚拟内存技术,让用户感觉内存是无限大的,取之不尽,用之不竭。
资源管理的目的:为用户提供一种简单、有效使用资源的方法,充分发挥各种资源利用率。
人机交互的观点
OS作为机器与用户之间的接口
操作系统是人机交互的界面与接口,用户与计算机进行的一切活动都是要经过操作系统。
操作系统的目标
方便性;通过命令,或鼠标等便可完成所希望的要求(包括网上信息查询)。
有效性;如实现CPU、I/O设备的并行操作、对内外存中存放的信息进行统一管理避免无序和空间的浪费。
可扩展性;允许在不妨碍服务前提下,开发、测试和引进新的系统功能。如高性能芯片出现控制寄存器硬件机制后,操作系统经过扩展就实现了页式存储分配机制等。
操作系统包括哪些功能?
1 存储器管理功能
内存分配: 记录整个内存,按照某种策略实施分配,或回收释放的内存空间。
地址映射: 硬件支持下解决地址映射,即逻辑到物理地址转换。
内存保护: 保证各程序空间不受“进犯” 。
内存扩充: 通过虚拟存储器技术虚拟成比实际内存大的多的空间来满足实际运行的需要。
2 处理机管理功能
作业和进程调度: 后备队列上(外存空间)的调度,作业调度(并不是所有类型机器都具有) 。CPU调度,进程调度。
进程通信: 由于多个程序(进程)彼此间会发生相互制约关系,需要设置进程同步机制。进程之间往往需要交换信息,为此系统要提供通信机制。
3 设备管理功能
缓冲区管理: 管理各类I/O设备的数据缓冲区,解决CPU和外设速度不匹配的矛盾。
设备分配: 根据I/O请求和相应分配策略分配外部设备以及通道、控制器等。
设备驱动: 实现用户提出的I/O操作请求,完成数据的输入输出。这个过程是系统建立和维持的。
设备无关性: 应用程序独立于实际的物理设备,由操作系统将逻辑设备映射到物理设备。
4 文件管理功能
文件存储空间的管理:记录空闲空间、为新文件分配必要的外存空间,回收释放的文件空间,提高外存的利用率等。
目录管理: 目录文件的组织、及实现用户对文件的“按名存取”、目录的快速查询和文件共享等。
文件的读写管理和存取控制: 根据用户请求,读取或写入外存。并防止未授权用户的存取或破坏,对各文件(包括目录文件)进行存取控制。
5 用户接口管理
命令界面: 系统提供一套命令,每个命令都由系统的命令解释程序所接收、分析,然后调用相应模块完成命令所需求功能。
图形界面: 考虑用户使用计算机的方便性,现代操作系统都提供了图形用户界面。它也是一种交互形式,只不过将命令形式改成了图形提示和鼠标点击。
程序界面: 也称系统调用界面,是程序层次上用户与操作系统打交道的方式。
操作系统的地位?
操作系统是裸机之上的第一层软件,是建立其他所有软件的基础。它是整个系统的控制管理中心,既管硬件,又管软件,它为其它软件提供运行环境。
操作系统的基本特征?
1) 并发:并发性是指两个或多个活动在同一给定的时间间隔中进行。
并发与并行的区别:并行性指两个或多个事件在同一时刻发生,并发性指两个或多个事件在同一时间间隔发生。
2) 共享:共享是指计算机系统中的资源被多个任务所共用。
3) 异步性/随机性:每个程序什么时候执行,向前推进速度快慢,是由执行的现场所决定。但同一程序在相同的初始数据下,无论何时运行都应获得同样的结果。
操作系统的主要类型有哪些? 各有特点?
多道批处理系统、分时系统、实时系统、个人机系统、网络系统和分布式系统
操作系统的三种基本类型:多道批处理系统、分时系统、实时系统。
多道程序系统:就是指允许多个程序同时进入内存并运行。即同时把多个程序放入内存,并允许它们交替在CPU中运行,它们共享系统中的各种硬、软件资源。当一道程序因I/O请求而暂停运行时,CPU便立即转去运行另一道程序。
单道程序的运行过程:在A程序计算时,I/O空闲, A程序I/O操作时,CPU空闲(B程序也是同样);必须A工作完成后,B才能进入内存中开始工作,两者是串行的,全部完成共需时间=T1+T2。
多道程序的运行过程:将A、B两道程序同时存放在内存中,它们在系统的控制下,可相互穿插、交替地在CPU上运行:当A程序因请求I/O操作而放弃CPU时,B程序就可占用CPU运行,这样 CPU不再空闲,而正进行A I/O操作的I/O设备也不空闲,显然,CPU和I/O设备都处于“忙”状态,大大提高了资源的利用率,从而也提高了系统的效率,A、B全部完成所需时间<<T1+T2。
多道程序设计技术不仅使CPU得到充分利用,同时改善I/O设备和内存的利用率,从而提高了整个系统的资源利用率和系统吞吐量(单位时间内处理作业(程序)的个数),最终提高了整个系统的效率。
多道程序系统的出现,标志着操作系统渐趋成熟的阶段,先后出现了作业调度管理、处理机管理、存储器管理、外部设备管理、文件系统管理等功能。
多道批处理系统:在前述的批处理系统中,引入多道程序设计技术后形成多道批处理系统(简称:批处理系统)。
特点:多道、成批
优点:资源利用率高、系统吞吐量大
缺点:等待时间长、没有交互能力
特点:
多道:系统可同时容纳多个作业。这些作业放在外存中,组成一个后备队列,系统按一定的调度原则每次从后备作业队列中选取一个或多个作业进入内存运行,运行作业结束、退出运行和后备作业进入运行均由系统自动实现,从而在系统中形成一个自动转接的、连续的作业流。
成批:在系统运行过程中,不允许用户与其作业发生交互作用,即:作业一旦进入系统,用户就不能直接干预其作业的运行。
批处理系统的追求目标:提高系统资源利用率和系统吞吐量,以及作业流程的自动化。
批处理系统的一个重要缺点:不提供人机交互能力,给用户使用计算机带来不便。
分时系统:把处理机的运行时间分成很短的时间片,按时间片轮流把处理机分配给各联机作业使用。若某个作业在分配给它的时间片内不能完成其计算,则该作业暂时中断,把处理机让给另一作业使用,等待下一轮时再继续其运行。由于计算机速度很快,作业运行轮转得很快,给每个用户的印象是,好象他独占了一台计算机。而每个用户可以通过自己的终端向系统发出各种操作控制命令,在充分的人机交互情况下,完成作业的运行。
目标:对用户响应的及时性,即不至于用户等待每一个命令的处理时间过长。
分时:指若干并发程序对CPU时间的共享。它是通过系统软件实现的。共享的时间单位称为时间片。
特征:
多路性/同时性;宏观上同时有多个用户在运行
交互性;在终端上编辑、运行程序,或其它操作
独占性;每个用户一个终端,独立操作,互不干扰
及时性;在很短时间内得到响应,小于2~3秒
优点:
响应快,界面友好
多用户,便于普及
便于资源共享
实时系统:
背景: 虽然多道批处理系统和分时系统能获得较令人满意的资源利用率和系统响应时间,但却不能满足实时控制与实时信息处理两个应用领域的需求。于是就产生了实时系统,即系统能够及时响应随机发生的外部事件,并在严格时间范围内完成对该事件的处理。
响应时间很快,可以在毫秒甚至微秒级立即处理
典型应用形式:过程控制系统、信息查询系统、事务处理系统
分类:
(1)实时控制系统。当用于飞机飞行、导弹发射等的自动控制时,要求计算机能尽快处理测量系统测得的数据,及时地对飞机或导弹进行控制。
(2)实时信息处理系统。当用于预定飞机票、查询有关航班、航线、票价等事宜时,要求计算机能对终端设备发来的服务请求及时予以正确的回答。
特点:
(1)及时响应。每一个信息接收、分析处理和发送的过程必须在严格的时间限制内完成。
(2)高可靠性。需采取冗余措施,双机系统前后台工作,也包括必要的保密措施等。
通用操作系统:具有多种类型操作特征的操作系统。可以同时兼有多道批处理、分时、实时处理的功能,或其中两种以上的功能。
个人计算机操作系统:个人计算机上的操作系统是联机交互的单用户操作系统,它提供的联机交互功能与通用分时系统提供的功能很相似。
单用户操作系统
单用户操作系统特征:
个人使用:整个系统由一个人操纵,使用方便。
界面友好:人机交互的方式,图形界面。
管理方便:根据用户自己的使用要求,方便的对系统进行管理。
适于普及:满足一般的工作需求,价格低廉。
多用户操作系统:网络操作系统、分布式操作系统。代表是UNIX,具有更强大的功能和更多优点。
网络操作系统:网络操作系统是网络上各计算机能方便而有效地共享网络资源,为网络用户提供所需的各种服务的软件和有关规程的集合。
网络操作系统与通常的操作系统有所不同,它除了应具有通常操作系统应具有的处理机管理、存储器管理、设备管理和文件管理外,还应具有以下两大功能: 提供高效、可靠的网络通信能力; 提供多种网络服务功能,如:远程作业录入并进行处理的服务功能;文件转输服务功能;电子邮件服务功能;远程打印服务功能。
计算机网络 = 计算机技术+通信技术
特征:分布性、自治性、互连性、可见性
功能
本机+网络操作系统:本地OS之上覆盖了网络OS,可以是同构的也可以是异构的。
功能:实现网络通信、资源共享和保护、提供网络服务和网络接口等
分布式操作系统:一组独立的计算机展现给用户的是一个统一的整体,就好像是一个系统似的。系统拥有多种通用的物理和逻辑资源,可以动态的分配任务,分散的物理和逻辑资源通过计算机网络实现信息交换。
分布式操作系统是以一种传统单处理器操作系统的形式出现在用户面前的,尽管它实际上是由多处理器组成的。用户应该不知晓他们的程序在何处运行或者他们的文件存放于何处,这些应该由操作系统自动和有效地处理。
分布式系统通常允许一个应用在多台处理器上同时运行,因此,需要更复杂的处理器调度算法来获得最大的并行度优化。
定义:运行在不具有共享内存的多台计算机上,但用户眼里却像是一台计算机。(分布式系统无本地操作系统运行在各个机器上)
特征:分布式处理、模块化结构、利用信息通信、实施整体控制
特点:透明性、灵活性、可靠性、高性能、可扩充性
用户与操作系统打交道的手段称为用户接口。
从用户的观点看,操作系统是用户与计算机之间的接口。
操作系统提供给程序员的接口是系统调用。系统调用是用户或其他系统程序获得操作系统服务的唯一途径。
计算机的操作系统是一种系统软件。