什么情况下操作系统程序会占用处理器运行

计算机系统启动后,操作系统总是等待某个中断发生,每当发生一个中断事件,就会触发操作系统工作,操作系统的一次工作结束后又主动让出处理器让其他程序运行。

允许多道程序同时执行的硬件基础是什么

中断系统和通道技术

操作系统怎样让多个程序同时执行

处理器在任何时刻只能被一个程序占用,通过中断装置,系统中若干程序可以交替的占用处理器,形成多个程序同时执行的状态,硬件具有处理器和外围设备并行工作能力,各个外围设备也可以并行工作,利用硬件的这种并行工作能力,操作系统允许多个程序同时执行,在同一时刻,分别使用不同的资源

为什么把启动IO等指令定义为特权指令

一个程序可以在其它程序等待外围设备传递信息时占用处理器,在执行任务过程中,如果其他程序也使用启动指令去启动一台正在工作的外围设备就会造成冲突,为了保证输入输出的完整性把启动IO这类可能影响系统安全的指令定义为特权指令。

怎样限制用户程序中使用特权指令

处理器设置了管态和目态两种工作方式,在管态下,处理器可以执行包括特权指令内的一切指令,在目态下,处理器不能执行特权指令,操作系统在管态下工作,用户程序在目态下工作,如果处理器在目态下取到了特权指令则拒绝该指令,并产生非法操作事件经过中断装置和操作系统通知用户修改。

操作系统和硬件如何配合来实现存储保护

存储保护随着主存储器的管理方式不同实现的管理保护方法也不同,在连续分配空间的存储系统中,硬件中设置了两个寄存器来限定用户程序执行中可以访问的内存范围,分别是基址寄存器和限长寄存器,程序执行时,系统对每一个访问内存的地址进行核对满足访问地址大于等于基址寄存器值并且小于等于限长寄存器的值则允许访问,否则不允许访问。这样保证该区域以外的信息不受破坏。

为什么要研究操作系统的结构

操作系统是一种程序量大且复杂的系统软件,设计一个操作系统需要大量的人力和较长的时间,为了保证操作系统能够正确而高效的工作,程序的结构又是影响程序质量的内在因素,因此我们有必要对操作系统结构进行研究。

应该从哪些方面考虑操作系统的结构设计

正确性,一个良好的操作系统不仅能保证正确性,而且易于验证其正确性。

高效性,核心程序是影响程序运行效率的关键,应该遵循少而精的选择,使处理器及有效又灵活。

可维护性,方便维护和后期修改
可移植性,在结构设计时,尽量减少与硬件直接有关的程序量,并将其独立封装

操作系统采用层次结构有什么优点

层次结构的最大特点是把整体问题结构化,一个大型复杂的操作系统被分解成若干单向依赖的的层次,由各层次的正确性来保证整个操作系统的正确性,采用层次结构不仅结构清晰,而且调试方便,有利于功能的增删改。

用户怎样使用操作系统提供的接口

操作系统为用户提供两种类型的使用接口,一种是操作员级的接口,一种是程序员级的接口以便用户与操作系统建立联系,操作员级别的接口是一组操作控制指令,他们供用户提出如何控制作业执行的要求,程序员级别的接口是一组系统功能调用,他们为用户程序提供服务功能

操作系统为什么要提供”系统调用“

系统调用是操作系统为用户程序提供的一种服务界面,或者说是操作系统保证程序程序设计语言能够正常工作的一种支持,在源程序一级,用户程序设计语言描述算题任务的逻辑要求,,如读文件,写文件,请求主资源等,这些要求的实现只能通过操作系统的系统调用才能完成,其中有些要求还必须执行硬件的特权指令(I/O)才能达到目的。

UNIX系统的层次结构有什么特点

UNIX的层次结构主要包括内核层和外壳层,内核层包括系统调用,存储管理,文件管理,设备管理,进程管理,

外壳层包括shell,编译程序,解释程序,实用程序吗,系统库。

UNIX为用户提供怎样的使用接口

操作系统面向用户提供的两类使用接口:操作控制命令和系统功能调用。UNIX提供的操作控制命令被称为Shell命令。若干条shell命令组成一个shell文件

用户程序怎样请求UNIX的系统功能调用为其服务?

用户程序是使用“访管命令”来请求系统调用的,对不同的系统来说,访管命令的形式是不同的。在UNIX系统中,规定用户程序使用“trap”命令来请求系统调用。

trap处理程序的主要职责

trap处理子程序根据trap命令中的系统调用编号查系统调用程序入口表,得到该系统调用所带的参数个数和相应的处理程序入口地址。然后,然后把参数传到内核的系统工作区,再按处理程序入口地址转向该系统调用的处理程序执行。

UNIX为什么能够允许同一个用户同时执行两个以上的任务

如果一个程序的运行时间较长,且该程序运行时不再需要在终端输入任何信息,那么用户可以要求UNIX将这个应用转入后台不再加以监视,,UNIX规定只要在请求后台执行命令末尾输入字符&,命令在执行时,就把实现这条命令的程序转入到后台。,不等该程序执行完就返回前台,且显示可以输入新的命令提示,如果输入了新的命令,那么实现这条命令的程序就与转入后台的程序同时执行。