操作系统结构

2018-10-09  本文已影响0人  啦啦哇哈哈

一、操作系统做什么?

1.操作系统定义

A program that acts as an intermediary between a user
and the comupter hardware.
计算机硬件和用户(人和程序)之间的一个中介

2.操作系统目标

二、硬件系统组成

三、4个层次

操作系统把硬件包起来了,所有的对硬件的操作必须经过操作系统。

四、现代操作系统的特征

1.多程序 Mutiprogramming

这是为了提高CPU的使用效率

一个简单的例子
如果系统上只能有一个用户。一个用户程序的操作需要CPU执行它的指令,还需要I/O来作它的输入输出。只有CPU指令,没有I/O,这有什么意义hhh,而只有I/O没有CPU更不可能,因为I/O就是CPU控制的。所以有一个很明显的问题就是CPU执行指令时候,I/O就停了,而I/O时候,CPU又停了不执行指令了。
为了解决这种低效问题,一个基本想法就是,可不可以在系统里面装两个程序,当一个在I/O时候,它没有使用CPU,能不能启动另一个程序让它使用CPU?这样不就是让CPU使用率提高了吗?

嗯就是这样,有两个以上程序可以驻留内存,这种状态就叫Mutiprogramming

2.多任务 Multitasking 分时系统 Timesharing

在多程序思想的基础上扩展,Multiprogramming只要求多个程序驻留在内存中,CPU有空时候给程序分配资源就可以,而Multitasking则要求不但是驻留在内存,还要求在程序需要CPU时候,CPU能及时给它!响应用户的交互操作。称为交互式计算

一个简单的例子
如果不具备这样的及时性,会有什么后果?一台计算机,能播放PPT还能接收邮件,这算是有多程序思想了。此时如果你在这里疯狂读PPT,而永远不去理睬e-mail,接收e-mail的程序永远得不到CPU资源,那么e-mail发过来了不响应就丢失了。邮件是什么,邮件给谁的,这并不重要,但是必须要先及时的响应,把它接收过来,不然就丢失在茫茫网海中了hhh。所以读PPT时候,要让邮件程序有收邮件的机会。而反过来一样,如果在接受一个很大的邮件,需要一定的时间接收,PPT此时得不到CPU,不动了,那还怎么学习,会给用户造成机器死机的感觉。

这就是Multiprogramming的重要性。必须要支持这样的需求!由此引出了操作系统的各种概念。

3.CPU提供Dual-mode机制
4.其他特征

五、操作系统的服务类别

一共有两类服务。

1.一类服务直接帮助用户
2.另一类服务确保系统共享资源的高效运作

就是我们在上面举例中的PPT和e-mail按个实例

六、操作系统的服务功能

进程管理
内存管理
存储设备管理
大容量存储器管理
I/O子系统管理

七、系统调用 System Calls

用户程序和系统软件与操作系统之间的界面。提供了操作系统的有效服务界面。

一个简单例子

这是进行文件复制时候的一个示例,用到了各种系统调用,文件管理的这些操作的实现都是要通过操作系统的系统调用来帮忙:
1.通常用高级语言C/C++实现
2.程序通常以API(Application Program Interface)使用,而不是直接使用系统调用。
3.三种流行的APIs
4.为什么要用API,而不是直接系统调用?

因为太菜了hhhh,开个玩笑。
普通用户不懂啊,普通的用户要理解系统调用的概念是有困难的,编程序的人可能不懂这个啊,也要让他去写程序。比如linux系统调用都是使用int 0x80号中断来实现的,普通用户根本不懂这些中断什么的。所以OS提供API,用户可以调用比较容易一点的API来实现系统调用。而不是把系统调用扔给你。

一个简单示例
下面就是调用标准C库里面的printf,用户调用printf,C程序拦截了这个调用来调用必要的操作系统调用(这里是write()),真正实现写字符输出的是系统调用的write(),用户程序只需要调用C库中的API就可以了。这个printf则是专业人士写的,为了用户的方便,他不用去用中断去实现打印,而只需要调用printf,printf帮助它做更底层的东西——引起int 0x80,进入内核态,调用write(),write()完成任务之后,又跳回到用户态,printf的代码中,printf再return到用户程序。


API和System Call和操作系统之间的关联如下所示


八、系统程序 System Programs

系统程序提供了一个方便的环境以开发程序和执行程序,其中一小部分知识系统调用的简单接口,其他可能是相当复杂的。

系统程序分类

以用户考察OS的视角,OS是以系统程序描述的,而不是系统调用。

九、操作系统结构

简单结构

层次化结构


从低到高:
硬件——硬件设备控制器——内核驱动程序——内核里的管理子系统——内核提供的系统调用——用户程序

微内核 microkernel

基本思想:尽量把内核中的所有非基本部分移出到用户态空间,将它们实现为系统程序或用户程序。剩下的就是微内核(通常包含最小的进程、内存管理以及通信功能)。处于用户态空间的功能模块通过消息传递机制进行通信。

模块 modules

现代操作系统大多实现了内核模块机制。

上一篇 下一篇

猜你喜欢

热点阅读