一细说操作系统结构与控制执行过程

1.I/O中断驱动;

b2958c2d1a16433f9d0b6adfdfb4b6ec.jpg

 

I/O结构:设备控制器可允许多个设备与其相连,每个设备控制器维护一定量的本地存储和一组特定用途的寄存器(cpu中),该设备控制器负责本地存储与设备之间数据传递。操作系统为每个控制器提供一个设备驱动程序,该驱动程序负责控制设备控制器,并为操作系统的其他部分提供统一的设备访问接口;

456b075c7d524aa4886fe5becd2f12bc.png

 

当开始I/O,驱动程序加载设备控制器的寄存器(CPU中),设备控制器检查寄存器的内容,以便决定执行啥操作,然后控制器开始从设备向本地存储传输数据。

传输完成后,设备控制器通过中断通知驱动程序,然后驱动程序返回操作系统。

2.I/O中断适合少量数据移动。

大量数据时使用直接内存访问DMA direct memory access:DMA设备控制器可以直接在本地缓冲和内存之间传递数据,无需CPU干预;

计算机的体系结构

单处理器系统:一个cpu;带有其他专用处理器包括特定设备处理器(磁盘,键盘等处理器)或更通用处理器(I/O处理器),由其执行有限指令集;有时候由操作系统管理,cpu发出指令,由其执行自己的任务,不由cpu直接调度;

有时候专用处理器集成到硬件,操作系统不能通信,其自主完成任务;

67e95660eeb945e0a2cff427d33e5483.jpg

 

多处理器系统:两个或多个cpu共享总线或多个设施;

根据处理器是否存在主从关系两种类型:对称处理 symmetric multiprocessing SMP(每个处理器完成所有任务,有各自寄存器,本地缓存,但共享内存等资源)和非对称处理(asymmetric multiprocessing)

增加吞吐量:增加处理器,规模经济:共享,增加可靠性:一个出故障可由其他代替;

多核:多个计算核集成到单个芯片;

操作系统的结构:L1.特点:多道程序设计:通过安排作业(编码与数据)使CPU总有一个执行作业,当某i任务执行需要等待一个任务完成时,CPU会切换另一个作业,提高了利用率;分时系统(多任务系统)是多道程序设计的延申,用户还可以进行交互(通过键盘等输入设备发出指令,等待结果;

作业调度:内存太小不能加载所有作业,操作系统需要做出选择;

CPU调度:多个任务同时执行时操作系统要做出选择;操作系统需要中断驱动,操作系统会等待时间的发生,陷阱(或异常)是一种软件生成的中断,或源于出错(除数为零或无效内存访问),或源于用户程序特定请求(执行操作系统某个服务);

为了区分系统代码与用户代码的执行,操作系统至少有两种模式:用户模式及系统模式(内核模式或特权模式,监视模式);通过一个模式位来表示,用户模式(1),内核模式(0);

61ff4986907943b78a540867f00c4abf.jpg

 

当操作系统控制计算机时,为系统模式;执行用户程序时为用户模式;

定时器;在一段时间后中断用户模式,操作系统重新控制计算机;

假设位于磁盘的文件需要修改,那么先将文件加载到内存,之后该文件被复制到高速缓存和内部寄存器,然后该文件的副本出现在了多个地方,先修改寄存器中文件的值,然后不同地方该文件不相同,只有当寄存器中的值被复制写入磁盘时,文件值才会相同;

位图:n位二进制串,每个位置i的数值与其i处资源相关;

比如0表示资源可用,1表示资源不可用;

例如:001:第三个资源不可用;

操作系统的结构

用户界面:

fc18884e6c8448d1b21d332d4c09d536.jpg

 

一种形式为命令行command-line interface(CLT)

另一种为批处理界面,命令即控制这些文件的指令可以编成文件以便运行;

最常用的是图形用户界面graphical user interface(GUI),利用桌面desktop的概念,采用基于鼠标的视窗和菜单系统;

当遇到错误时,有时转储内存信息到磁盘,并使用调试器debugger(一种系统程序)确定问题原因;无论正常还是异常,最终都将控制转到命令解释程序;对于交互系统,直接执行下一条指令

对于GUI,弹出错误提示;

对于批处理系统,终止整个作业,直接执行下一个作业;

程序执行:系统加载程序到内存并执行;

用户与操作系统的界面:

有的操作系统内核包括命令解释程序,其他操作系统,包括Windows和UNIX,将命令解释程序看作是一个特殊程序,当一个任务开始或用户首次登录时,该程序就会运行;

有多个可选命令解释程序的系统来说,这些解释程序称为外壳;

命令解释程序:获取并执行用户的下一条指令;

具体有两种实现方式:1.本身包含了执行的代码

2.通过系统程序实现大多数命令,如UNIX,将执行的代码

在一个文件中, 通过命令确定该文件,然后将它加载到内存中,打开执行;

使用户可以增加新文件来增加命令而无需修改程序;

系统调用

30681afe4c524beaae984b1d4d7c8458.jpg

 

应用开发人员根据API application  programming interface设计程序,使其能在支持API的任何程序上运行;

三组常见API 适合Windows的Windows API,适合POSIX系统的POSIX API,适合Java虚拟机的Java API,程序员通过操作系统提供的函数库调用API.

对于运行Linux和UNIX的用c语言编写的程序,库名为libc。

API为程序员调用实际的系统调用,

d77df09e17b7449f9e7be158969be5c6.jpg

 

Window函数CreateProcess()实际调用Windows内核中的系统调用NTCreateProcess();

有的程序设计语言运行时,编译器直接提供的函数库提供了系统调用接口,以连接到操作系统的系统调用,系统调用接口截取API函数调用,调用操作系统的所需系统调用;

系统调用的六种类型:进程控制,文件管理,设备管理,信息维护,通信,保护;

操作系统的结构

下列为传统的UNIX结构;

d175112ede8a48b9b2e47dc37bbda805.png

 

分层方法:

最底层0层为硬件,最高层为用户接口;

每层只能调用较低层功能和服务;

可以自下向上调试各层,第一次只使用了基本硬件,可以先调试,正确后开始下一层;每层要为更高层隐藏该层数据结构和操作,硬件等,因为较高层无需知道更低层操作如何实现

 

  • 16
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值