1.请简要描述操作系统的定义及其功能。
操作系统定义:
是计算机系统中的一个系统软件,是一些程序模块的集合 ,它们管理和控制计算机系统中的软硬件资源,合理的组织计算机的工作流程,以便有效的利用这些资源为用户提供一个功能强大、使用方便和可扩展的工作环境,从而在计算机与其用户之间起到接口的作用。(管理计算机软硬件资源,从而让计算机协调正确为用户工作)操作系统的功能(6点,前5点最重要):
(1)处理机管理
(2)存储管理
(3)设备管理
(4)文件系统管理
(5)用户接口(6)其他功能(健壮性管理:如何确保操作系统自身的正常运作。安全性管理:即如何防止非法操作和入侵。)
2.为什么引入多道程序设计技术?
由于单道批处理CPU和I/O设备的运行是串行的,即在程序进行输入输出时,CPU只能等待。为了实现并发,使得CPU和I/O重叠起来运行,可将多个程序同时加载到计算机内存里,能够进一步提高资源的利用率和系统中作业的吞吐量,因而引进了多道程序技术
3.什么是多道批处理、分时和实时操作系统?各有什么特点?请简要阐述。
多道批处理:
(1)定义:批处理系统中采用多道程序设计技术,就形成了多道批处理系统
(2)特点:
1)多道:计算机内存中同时存放几道相互独立的作业
2)宏观上并行:同时有多道作业有内存运行,某一时间段上,各道作业不同程度地向前推进
3)微观上串行:任一时刻最多只有一道作业占用CPU,多道作业交替使用CPU
分时操作系统:
(1)定义:一般采用时间片轮转的方式,使一台计算机为多个终端用户服务。对每个用户能保证足够快的响应时间,并提供交互会话能力。
(2)特点:
1)交互性:可人机对话,用户可以在程序动态运行情况下对其加以控制;用户上机提交作业方便
2)多用户同时性:共享CPU和其他资源,充分发挥系统的效率。
3)独立性:每一用户独占一个终端。 及时性:用户的请求能在很短的时间内获得响应
实时操作系统:
(1)定义:是以在允许时间范围之内做出响应为特征的。它要求计算机对于外来信息能以足够快的速度进行处理,并在被控对象允许时间范围内做出快速响应,其响应时间要求在秒级、毫秒级甚至微秒级或更小。
(2)特点:
1)高响应性(在允许时间范围之内作出响应)
2)高可靠性、高安全性
3)具有一定的专用性,与批处理和分时系统相比,资源利用率和吞吐量可能较低.
4.一个多道批处理系统中仅有P1和P2两个作业,P2比P1晚5ms到达,它们的计算和I/O操作顺序如下。
P1:计算60ms,I/O操作80ms ,计算20ms
P1:计算120ms, I/O操作40ms ,计算40ms
不考虑调度和切换,请计算完成两个作业需要的最少时间
5.若某计算问题的执行情况如图所示,请回答下列问题:
(1)叙述该计算问题中处理机、输入机和打印机是如何协同工作的。
(2)计算在图所示的情况下处理机的利用率。
(3)简述处理机利用率不高的原因。
(4)请画出能提高处理机利用率的执行方案。
6.操作系统为用户提供哪两类接口?每类接口有哪些表现形式?
1.命令控制界面:为用户提供的各种命令接口界面,用户可利用这些操作命令来组织和控制作业的执行或管理计算机系统。表现形式有菜单、命令行、图形界面、作业控制语言(命令)等。
2.系统调用:编程人员通过系统调用来请求操作系统提供服务,调用系统中已有的系统功能。表现形式例如申请和释放外设等资源、控制程序的执行速度等
7.什么是系统调用?OS提供系统调用的原因是什么?简述系统调用的实现过程。
系统调用定义:
也称应用编程接口API允许运行程序调用操作系统的服务和功能,是OS提供给编程人员的唯一接口。
原因:
(1)用户程序通过系统调用来使用硬件,而不关心具体的硬件设备,这样大大简化了用户程序的开发。
(2)系统调用使用户程序有更好的可移植性。(3)系统调用使得内核能够更好的管理用户程序,增强了系统的稳定性。
(4)系统调用有效的分离了用户程序和内核的开发。实现过程:
(1)编写系统调用处理程序
(2)设计一张系统调用入口地址表,每个入口地址都指向一个系统调用的处理程序
(3)陷阱(trap或称陷入)处理机制,将陷阱指令中所包含的指令号与该入口地址表对应起来
(4)需开辟现场保护区,以保存发生系统调用时的处理器现场
总结就是: 用户在程序中使用系统调用,给出系统调用名和函数后,即产生一条相应的陷入指令,通过陷入处理机制调用服务,引起处理机中断,然后保护处理机现场,取系统调用功能号并寻找子程序入口,通过入口地址表来调用系统子程序,然后返回用户程序继续执行。
8.系统调用、异常和中断的区别和联系?
中断(Interruption)也称外中断,是指来自CPU执行指令外部的事件,通常用于信息输入/输出,如设备发出的I/O结束中断,表示设备输入/输出处理已经完成。
异常(Exception)也称内中断,是指来自CPU执行指令内部的事件,如程序的非法操作码、地址越界、运算溢出、虚存系统的缺页及专门的陷入指令等引起的事件。异常不能被屏蔽,一旦出现,就应立即处理。
异常可分为故障、自陷。故障(Fault)通常是由指令执行引起的异常,如非法操作码、缺页故障、除数为0、运算溢出等。系统调用是一种自陷(Trap),是一种事先安排的“异常”事件,用于在用户态下调用操作系统内核程序。
9.系统调用与库函数有什么区别?系统调用和函数调用的区别和联系?
系统调用与库函数的区别:
库函数是语言或应用程序的一部分,可以运行在用户空间中。系统调用是操作系统的一部分,是内核提供给用户的程序接口,运行在内核空间中,库函数可以理解为是对系统调用的一层封装。
系统调用和函数调用的区别:
1>运行状态不同 系统调用的调用过程和被调用过程运行在不同的状态,而普通的过程调用一般运行在相同的状态。
2>调用方法不同 系统调用必须通过软中断机制首先进入系统核心,然后才能转向相应的命令处理程序。普通过程调用可以直接由调用过程转向被调用过程。
3>返回问题 在采用抢先式调度的系统中,当系统调用返回时,要重新进行调度分析――是否有更高优先级的任务就绪。普通的过程调用直接返回调用过程继续执行。
系统调用和函数调用的联系:
许多函数调用会使用系统调用用来实现功能,没有使用系统调用的库函数,它的执行效率通常要比系统调用的高。
10.处理机为什么要区分核心态和用户态?在什么情况下进行两种方式的切换?
原因:
(1)在cpu中运行的操作系统程序和用户程序对应的机器指令集是不同的。操作系统使用所有指令,但是用户程序只能使用部分指令。
(2)从资源管理和程序控制执行的角度出发,将指令系统分为两大部分:特权指令和非特权指令。为了保护系统程序不被应用程序有意或无意地破坏,为计算机设置了两种状态:1.系统态(也称为管态、内核态或核心态)2.用户态(也称为目态)。
在什么情况下进行两种情况的切换:
有3种情况:
中断、系统调用和异常(也叫陷阱)(全为中断措施,但发生的原因不同,叫法不同)
(1)系统调用 这是用户态进程主动要求切换到内核态的一种方式,用户态进程通过系统调用申请使用操作系统提供的服务程序完成工作,比如fork()实际上就是执行了一个创建新进程的系统调用。而系统调用的机制其核心还是使用了操作系统为用户特别开放的一个中断来实现,例如Linux的int 80h中断。
(2)中断 当外围设备完成用户请求的操作后,会向CPU发出相应的中断信号,这时CPU会暂停执行下一条即将要执行的指令转而去执行与中断信号对应的处理程序,如果先前执行的指令是用户态下的程序,那么这个转换的过程自然也就发生了由用户态到内核态的切换。比如硬盘读写操作完成,系统会切换到硬盘读写的中断处理程序中执行后续操作等。
(3)异常 当CPU在执行运行在用户态下的程序时,发生了某些事先不可知的异常,这时会触发由当前运行进程切换到处理此异常的内核相关程序中,也就转到了内核态,比如缺页异常。