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

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

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

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

第一部分 操作系统结构

俯视OS

  • 操作系统做什么的
  • 硬件系统的组成
  • 计算机系统的体系结构
  • 现代操作系统的特征
  • 操作系统的服务类别
  • 系统调用
  • 操作系统结构

操作系统做什么的

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

  • 使用户方便地使用计算机
  • 使计算机硬件高效率运行

硬件系统的组成

如图所示的硬件设施
  • 一个或数个CPUs,加上一些设备控制器,通过内部总线连接在一起。它们共享内存。
  • 这些CPUs和设备并行执行,并且竞争使用内存的访问周期。
操作系统结构.png

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

  • 地址总线。
  • 数据总线。
  • 控制信号。

计算机系统的体系结构

计算机系统从下层到上层共有4层
  • 硬件 —— 提供基本的计算资源
    CPU,内存,I/O设备等
  • 操作系统
  • 应用程序
  • 用户
计算机系统的4个层次
计算机系统的4个层次.png
由图我们可见:
  • 硬件是最底层。完全被操作系统所包裹,上层的系统软件,应用软件无法直接和硬件直接打交道。用户无法直接操纵硬件。提供基本资源。
  • 上面一层就是操作系统。必须通过操作系统调用硬件,提供对硬件的管理。
  • 再往上为系统软件和应用软件。
  • 顶层为用户。上面两层的划分并没有那么严格。

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

多程序,Multiprogramming

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

问题:

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

想法:

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

引入多程序的概念:

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

  • 这样使得我们可以使用作业调度器。每次选择一个作业,交于CPU执行。
  • 当这个作业被迫等待时(例如有I/O操作),CPU转向另一个作业。
多程序系统内部布局
多程序系统内部布局.png
多任务(Multitasking),分时系统(Timesharing)

概念

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

  • 响应时间(Response time)必须在1秒之内。
  • 每个用户至少有一道作业在内存中执行,由此产生了进程
  • 如果存在两个以上的进程等待CPU执行,则需要CPU调度
  • 如果内存空间装不下进程,则需要换入,换出从操作。
  • 虚拟内存管理技术,使得小内存也能运行大进程。
操作系统若干操作特征
  • 中断驱动的硬件操作
  • 软件申请,软件操作错误等,将产生异常,或陷入
  • 面临
  • “无限循环”问题
  • 进程干扰其他进城问题
  • 进程干扰OS问题
  • 等等
    (对于上面这些名词先熟悉了解,有个印象)
  • CPU提供Dual-mode机制,实现OS自我保护
    CPU的Mode bit=1,变为内核态,用户程序无论如何无法访问CPU。
操作系统的服务类别
一类服务直接帮助用户
  • 用户界面(UI)—常见UI类别:
    1.Command-Line(CLI)
    2.Graphics User Interface(GUI)
    3.批处理(Batch)

  • 程序执行 — 使OS能够装入程序到内存,执行驻留内存的程序,结束程序的执行,以及出错时的异常处理。

  • I/O操作

  • 文件系统相关操作

  • 进程间通信
    1.通过共享内存实现通信
    2.通过消息传递实现通信

  • 出错检测 - OS必须随时应对系统出错
    1.出错可能由硬件引起,如CPU,内存,I/O设备
    2.对于各种出错,OS必须有合适的处理程序
    3.OS应该提供调试,查错工具。

另一类服务确保系统共享资源的高效运作
  • 资源分配
  • 记账 — 跟踪记录哪些用户使用了多少资源,使用了哪些资源
  • 保护和安全

系统调用

操作系统编程界面
  • 通常用高级语言(C/C++)实现
  • 程序通常以Application Program Interface(API)使用,而不是直接使用系统调用。
  • 3大流行API:WIN32 API,POSIX API,JAVA API。
API-System Call-OS之间的关联
API-System Call-OS之间的关联.png

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

操作系统结构

简单结构
MS-DOS层次结构.png
  • 以MS-DOS为代表,占用极小的内存空间,提供大部分OS功能。
  • 不区分模块,有一些数据结构,但是并没有很好地分离界面,层次化组织OS功能。
层次化方法,以UNIX为例
UNIX层次.png
微内核结构
  • 将OS的功能模块转移至用户态空间
  • 剩下的,就是微内核
  • 这种做法容易升级,移植OS至不同类型CPU,体系结构。但是用户态空间与内核态空间之间的通信频繁,性能开销大。(即)
模块

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

总结:

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 201,784评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,745评论 2 378
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,702评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,229评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,245评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,376评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,798评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,471评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,655评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,485评论 2 318
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,535评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,235评论 3 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,793评论 3 304
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,863评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,096评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,654评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,233评论 2 341

推荐阅读更多精彩内容