设计模式

操作系统学习(一)—— 操作系统结构

2017-07-09  本文已影响0人  曲谐_

对于以后的工作,操作系统的学习必不可少。这次我学习的来源为浙江大学的操作系统课程,由李善平老师主讲,链接发送到下面,有需要的同学请自取。

http://www.icourses.cn/coursestatic/course_6801.html

我会在我的博客下面记录课堂上的关键内容,并且附加一些自己的思考。

第一部分 操作系统结构

俯视OS

操作系统做什么的

定义:操作系统是一个程序,起到了连接计算机用户和计算机硬件的中介。

硬件系统的组成

如图所示的硬件设施
操作系统结构.png

上图是普通PC机的体系结构。CPU是机器的核心,与下面的memory由总线连接。总线连接有三类:

计算机系统的体系结构

计算机系统从下层到上层共有4层
计算机系统的4个层次
计算机系统的4个层次.png
由图我们可见:

★★重点:现代操作系统的特征

多程序,Multiprogramming

任何一个用户程序的操作,都必须由CPU执行指令,I/O作输入输出。两者缺一不可。

问题:

对用户程序来讲,当CPU提供指令,I/O一般停止。而I/O作输入输出时,CPU需要等待I/O完成,后面指令无法执行。而操作系统追求设备高效率使用,如果两者必须有一方停止工作,则非常影响CPU的效率。

想法:

在计算机内存空间里装两道程序。当一个程序不用CPU只用I/O的时候,启动另一个程序,使其使用CPU,完成对CPU效率的提高。理想情况下,CPU一直在使用。

引入多程序的概念:

有两道以上程序可以驻留内存(给了CPU即可运行,即操作系统正在处理的程序),可以支持这种状态的可称之为——多程序(Multiprogramming)。

多程序系统内部布局
多程序系统内部布局.png
多任务(Multitasking),分时系统(Timesharing)

概念

扩展了多程序思想。多程序强调多个程序驻留内存,当需要执行的时候,将程序交于CPU处理即可。而现在则要求CPU更快速地在作业之间切换。这样,作业总是能及时地得到CPU,响应用户的交互操作,这称之为交互式计算

操作系统若干操作特征
操作系统的服务类别
一类服务直接帮助用户
另一类服务确保系统共享资源的高效运作

系统调用

操作系统编程界面
API-System Call-OS之间的关联
API-System Call-OS之间的关联.png

由图可见,用户使用Open()函数产生翻转,CPU Mode Bit=1,进入内核态,产生真正的系统调用。在系统内部再次使用Open()函数,产生真正的open动作。最后返回指令return跳回到用户态(即open()代码),再用一个return函数得到相应的结果。

操作系统结构

简单结构
MS-DOS层次结构.png
层次化方法,以UNIX为例
UNIX层次.png
微内核结构
模块

现代操作系统要求我们必须可以动态地装入和卸载,即可以将一个程序块动态装入,拼接上去。

总结:

第一节课主要讲述了一些概念性的东西,很多东西只是提了一些名词,如进程等,需要在接下来的课程里详细的研究相关名词的含义。

上一篇下一篇

猜你喜欢

热点阅读