操作系统笔记----
发布日期:2022-02-10 11:37:05 浏览次数:42 分类:技术文章

本文共 5699 字,大约阅读时间需要 18 分钟。

操作系统引论

一、 操作系统的目标、作用和模型

操作系统的定义:

一组控制和管理计算机硬件和软件资源,合理地对各类作业进行调度(多道),方便用户使用的程序的集合。

  1. 目标
    方便性:用户无需了解底层硬件,无需用0、1机器语言操作。
    有效性:CPU、I/O、存储等的管理专门、合理地被组织管理起来,提高资源的利用率。
    可扩充性:扩充应用软件;适应硬件和体系结构发展,扩充底层管理功能模块等。
    开放性:网络环境,遵循开放互联标准。方便性:用户无需了解底层硬件,无需用0、1机器语言操作。
  2. 作用
    作为用户与计算机硬件系统之间的接口
    作为计算机系统资源的管理者
    用作扩充机器

二、操作系统的发展过程

  1. 人工操作方式

    1)1946-50年代中:电子管时代,计算机速度慢,无操作系统,计算机资源昂贵;
    2)工作方式:
    用户:既是程序员又是操作员;用户是计算机专业人员;
    编程语言:机器语言;
    输入输出:纸带或卡片;
    3) 计算机工作特点:用户独占全机,资源利用率极低;CPU等待用户,计算前,手工装入纸带或卡片;计算完成后,手工卸取纸带或卡片;CPU利用率低;
    4) 主要矛盾:人机矛盾----人工操作严重降低了计算机资源的利用率
    5)提高效率的途径:脱机输入/输出技术。

  2. 脱机输入/输出(Off-Line I/O)方式

    1) 等待人工操作纸带输入数据的不是CPU,而是外围机,一定程度上解决人机矛盾。
    2) 脱机I/O方式的主要优点:减少了CPU的空闲时间提高I/O速度 脱机I/O方式的主要缺点:系统开销大!

  3. 单道批处理系统(Simple Batch Processing System)

    1) 作业成批处理,内存中只有一道。 作业成批、脱机方式输入到磁带或磁盘上进一步减少脱机I/O中装卸磁带等耗时操作;系统监督程序(Monitor)控制作业自动过渡,一个接一个的连续处理。
    2) 特征:单道性、顺序性、自动性
    3)优点: 一定程度解决人机矛盾,CPU与I/O速度矛盾; 提高了资源利用率和系统吞吐量; 算做OS的前身,但还不是现在所理解的OS。

  4. 多道批处理系统

    1) 用户作业、外存上排队,称为“后备队列”;作业调度程序、按一定的算法、从后备队列中选择若干作业 调入内存入内存的作业、共享CPU和系统中的各种资源,自动批量处理。
    2)优点
    CPU利用率提高:减少了CPU等待时间(正在运行的程序若因为I/O操作暂停,可调度其他程序执行,不必装卸。)
    内存利用率提高:容量尽可能多的被利用多种I/O设备并发被使用,也提高了利用率总体à系统吞吐量增加(虽然CPU总是串行的,但一段时间内被运行的作业数相对要多)
    3) 特征
    多道性
    无序性:作业入内存由算法决定,不按提交顺序。入内存后顺序执行。
    调度性:包括作业调度、进程调度。
    4) 缺点
    平均周转时间长:短作业的周转时间显著增长;无交互能力:整个作业完成后或中间出错时,才与用户交互,不利于调试和修改;

  5. 分时系统(time-sharing system)

    1) 分时系统实现中的关键问题 :
    交互:当用户在自己的终端上键入命令时,系统应能及时接收并及时处理该命令,再将结果返回给用户。
    共享:强调即使有多个用户同时通过自己的键盘键入命令,系统也应能全部地及时接收并处理。
    (1)及时接收:多路卡,缓冲区
    (2)及时处理:终端请求作业直接进入内存,设置时间片
    2)分时系统的实现方法
    改变批处理系统的运行方式:多个用户连接主机;请求的作业发送到主机后,直接进入主机内存以快速响应;系统采用时间片轮转方式处理服务请求
    3)分时系统的特征:
    多路、独立、及时、交互。
    多路性:多个用户同时使用一台计算机,共享CPU和其他资源,充分利用系统资源。
    独立性:用户感觉不到计算机为其他人服务,各用户独立操作,互不干扰。
    及时性:通过时间片技术和轮转调度算法保证及时响应。
    交互性:系统及时响应用户的请求,显著提高调试和修改程序的效率:缩短了周转时间。

  6. 实时系统(Real-Time System)

    1)实时系统是指:
    系统能及时(或即时)响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。
    2)实时系统的引入
    (1)实时控制
    如:火箭发射随时停止,实时根据采集数据进行处理
    (2)实时信息处理
    订票系统等,短时间内为用户做出正确回答
    3)实时系统的实现
    系统必修有能够保证其承担的多个任务在规定的时间完成,调度和能力是关键。
    按任务执行时是否呈现周期性来划分:周期性实时任务、非周期性实时任务——截止时间。
    根据对截止时间的要求来划分:硬实时任务、软实时任务。

三大基本操作系统的比较

在这里插入图片描述

三、 操作系统的基本特性

各种典型操作系统各有特色,但均具有共同的基本特征:

并发:多道并发是最根本的特征
共享
虚拟
异步

1.并发concurrence

并行性:两个或多个事件在同一时刻发生
并发性:两个或多个事件在同一时段发生

理解CPU并发:

单处理器系统中,多道程序在宏观上看似并行,实际在微观上是多道程序占用cpu交替执行的,并不是真正的“并行”。多处理器系统才有CPU并行。

单处理器系统中的并行:

在硬件技术支持的条件下,CPU 和 I/O操作能实现并行,这也是多道程序设计能够提高效率的原因之一。

2.共享sharing

系统中的资源可供内存中多个并发执行的进程(线程)共同使用。主要有两种共享方式:
互斥共享方式
对临界资源(如打印机)采用该方式,资源分配给某进程后未释放前,不能被其他进程所用。
临界资源(独占资源):一段时间内只允许一个进程访问的资源。

同时访问方式

对允许“同时”访问的资源(如磁盘)采用该方式,但“同时”仍然是“宏观并行微观串行”的,不是真正的同时

3. 虚拟virtual

通过某种技术把一个物理实体变为若干个逻辑对应物(用户感觉上的东西),两种实现方式:
时分复用
一个物品被多人分时使用,在一段时间内就表现为每个人都有一个该物品可用,1虚拟为n。

空分复用

一个物品划分为多个部分,多个人每人都有一部分可用,主观上看也是1虚拟成n。

4.异步性asynchronism

指进程的执行顺序和执行时间的不确定性

进程的运行速度不可预知:

由于资源等因素限制,进程通常不能一气呵成地执行完,多个进程并发执行是“时走时停”的,不可预知每个进程的运行推进快慢;

允许异步,但结果应正确:

只要环境相同,无论快慢,结果应该相同(可再现性),这需要进程互斥和同步手段来保证。

四、操作系统的主要功能

1.处理机管理功能

传统多道程序系统,处理机分配和运行都以进程为基本单位,对处理机的管理,就是对进程的管理。引入线程后,也包括对线程的管理。
主要解决内存中多道并发执行的“进程”如何占用CPU,如何运行的问题。

1)进程控制

为作业创建进程、撤销已结束的进程,控制进程在运行过程中的状态转换。以及线程的创建撤销等。
(可理解为对单个进程基本信息进行管理)
2)进程同步
为多个进程运行进行协调(包括互斥和同步)
3)进程通信
用来实现在相互合作进程间的信息交换;(直接通信和网络通信)
4)调度
作业调度(入内存)和进程调度(分配CPU)

2. 存储器管理功能

1)内存分配
为每道程序分配内存空间(包产到户)具体分配涉及许多细节:
分配方式:动态、静态
分配机制需要的数据结构、分配算法、回收内存功能。
2)内存保护
确保每道用户程序都只在自己的内存空间中运行
需要一个硬件——界限寄存器,存放正在执行进程的内存上下界,每条指令的访问地址都要进行越界检查,一般用硬件实现检查。
3)地址映射(变换)
进程的逻辑地址到内存物理地址的映射。
程序编译形成的目标程序地址都是从0开始,是逻辑地址
真正调入内存某个空间存放的地址是物理地址
4)内存扩充
用虚拟存储技术解决内存容量不足的问题;
请求调入功能
页面置换功能

3. 设备管理功能

1)缓冲管理:匹配CPU和外设的速度,提高两者的利用率和并行操作程度;
2)设备分配:按某种设备分配策略,为之分配所需的设备;
应设置设备控制表等数据结构记录设备及其控制器的标识符和状态;不同的设备,分配方式不同
3)设备处理:设备处理程序即驱动程序,及时X响应设备控制器请求,实现CPU和设备控制器之间的通信。

4. 文件管理功能

1)存储空间的管理:分配外存空间,提高外存的利用率,提高文件系统的运行速度;
需要相应的数据结构,记录文件存储空间的使用情况;要有对存储空间分配和回收的功能
2)目录管理:为文件建立目录项,并有效组织,实现方便的按名存取;提供快速的目录查询手段,提高文件检索速度;还需实现文件共享。
3)文件的读写管理和保护: 读写操作与有效的存取控制功能。

5. 用户接口

1)命令接口
用户可通过键盘终端发出命令以控制作业的运行。
联机用户接口:由一组磁盘操作命令和命令解释程序组成。
脱机用户接口:由一组作业控制语言组成,如批处理文件。
2)程序接口
用户程序在执行中访问系统资源而设置,由一组系统调用组成。
早期汇编语言才能使用,后高级语言及C语言中都给出了系统调用对应的库函数。
3)图形接口

五、操作系统的结构

1.传统的OS结构

1)无结构OS
早期开发OS,只追求实现和效率,缺乏贯穿的设计思想。是一组过程的集合。
问题:
过程互相调用,没有清晰的结构;
程序错误很多,调试复杂,阅读维护困难。

2)模块化OS结构

20世纪60年代出现的一种程序设计技术。基于“分解”和“模块化”原则来控制大型软件的复杂度。
制定功能模块
规定各模块接口
划分子模块
称为模块——接口的设计方法,关键是模块的划分和规定接口。

优点:

提高设计的正确性、可理解性和可维护性;
增强了OS的可适应性,可选用相应功能模块,也可进行增减和修补以满足新需求;
加速了开发过程。

问题:

设计初期,模块划分和接口规定不精确并且很难保证完全正确;接口规定与实际完成的模块需求不匹配会发生装配困难。
各模块的设计齐头并进,没有决策顺序,是一种“无序“模块,模块间仍会有复杂依赖关系,反而可能会使OS结构不清晰。

3)分层式OS结构

改进设计方式,变无序为有序——分层的思想
在物理机器上逐渐添加具有一定功能的软件层,每一层仅使用底层提供的功能和服务。(功能流水线)
优点:
易保证系统正确性
易扩充和维护
缺点:
分层单向依赖,执行一个功能,总要自下而上地穿越多层,增加系统通信开销,降低了效率。

2.微内核OS结构

Micro Kernel操作系统结构于20世纪80年代后期发展起来。尤其在多处理机环境下,更适用微内核技术。
与客户/服务器技术,面向对象技术同时发展起来的。微内核OS结构以OS为核心,以C/S为基础,采用了面向对象程序设计方法。
1)客户/服务器技术
2)面向对象技术
3)微内核

1)Client/Server模式

三部分组成:客户端、服务器、网络系统
交互方式:客户请求,服务器接收消息,回送消息,客户接收消息,四步。
优点:数据分布处理和存储;灵活可扩充,易于修改维护,仍方便集中管理。

2)面向对象编程技术

Object-Orientated Programming
具有相同属性、规则的事物抽象成对象,利用被封装的数据结构对具体对象实例进行操作。
进程、线程、消息、存储器都可抽象成对象。
可修改、扩充,具有继承性,容易保证正确和可靠性。

3)微内核

精心设计、实现一个可在其上构建通用OS的基础内核,该内核程序运行在核心态,开机常驻内存。
当前微内核操作系统结构仍没有一致公认的定义,但可从以下4方面进行描述:
1.足够小的内核
微内核并非一个完整的OS。与硬件紧密相关,实现较基本功能,复杂客户和服务器通信。
2.基于C/S模式
3.应用”机制与策略分离“原理
机制——实现某一功能的具体执行机构,位于基层;策略——借助某些参数和算法实现功能优化或达到不同功能目标,位于系统高层。
4.采用面向对象技术

微内核包含的基本功能 :

进程(线程)管理,包括进程调度、进程通信、进程同步等;低级存储管理;中断和陷入处理。
调度算法、虚拟内存的页面置换算法等都放入外部服务器中实现。

微内核的优点 :

灵活、可扩充:可选配功能服务器模块
增强可靠性:内核是稳定的核心,只有它能直接访问硬件。服务器在用户态出错绝不会导致系统瘫痪。
可移植性:操作系统绝大部分(各种服务器程序)与硬件平台无关,在不同硬件平台间移植时修改比较小。
该机制尤其适用于分布式系统。
采用面向对象技术,减少开发开销。

微内核存在的问题

运行效率降低
一次客户请求需要多次消息传递和用户/内核模式的上下文切换,开销增大。
有的服务需要借助其他服务,则需要的切换开销更大。
如何改善:
重新把一些常用基本功能由服务器移入内核。代价就是内核容量增大,接口定义和性能也将受影响。

微内核系统举例:

···Mach OS
美国卡内基梅隆Carngie-Mellon大学研制
它实现了一个微小的内核,包括线程调度、消息传递、虚拟内存和设备驱动。除这些之外,其它各种应用程序接口、文件系统、网络等等都运行在用户模式下。
然而,在Mach微内核操作系统的商用实现中,基本上所有的文件系统、网络和内存管理代码都运行在内核模式。因为纯微内核系统过于低效,在商用上是不切实际的。
···Windows NT
是微内核的,严格意义上讲,是混合内核
它让一些微核结构运行在用户空间的代码运行在内核空间,这样让内核的运行效率更高些。
···LINUX
单内核,层次化设计了模块机制

从整体上看,在当前的硬件条件下,微内核在效率上的损失小于其在结构上获得的收益,故而选取微内核成为操作系统的一大潮流。微内核结构将是21世纪的主流OS结构。它可有效支持多处理机,非常适用分布式系统。

转载地址:https://blog.csdn.net/ghy20164360/article/details/82869561 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:操作系统原理学习(第六周)_进程同步
下一篇:操作系统同步互斥问题

发表评论

最新留言

表示我来过!
[***.240.166.169]2024年03月31日 01时49分44秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

《中国债券市场》精髓:中国债券市场由政府主导,其最重要的目的是为国家建设筹集资金 2019-04-26
《极简GDP史》精髓:GDP虽有诸多局限性,但是对于社会经济发展仍然有举足轻重的作用 2019-04-26
《经济学是什么》精髓:如何用经济学家的眼光理解个人选择和市场经济? 2019-04-26
《卧底经济学》书中精髓:我们如何正确理解“稀缺”这件事儿? 2019-04-26
《学会花钱》书中精髓:花钱如何掌握分寸,以及如何避开花钱误区 2019-04-26
《定投十年财务自由》书中精髓:我们如何通过定投获得更高的收益? 2019-04-26
《海龟交易法则》精髓:制定对自己有利的交易规则,在风险可控的前提下,当机会出现,你要坚定不移的机械性执行交易 2019-04-26
《彼得·林奇教你理财》书中精髓:如何开始投资,以及我们到底该投资什么? 2019-04-26
《货币简史》书中的精髓:货币产生的起源是什么?货币又是如何发展起来的? 2019-04-26
《摩根财团》精髓:摩根财团与时俱进,在不同时代扮演不同角色,始终走在时代的前列 2019-04-26
《朝贡贸易与仗剑经商》精髓:古代中国朝廷不保护商人,将中国商人置于西方势力的仗剑经商之下 2019-04-26
《华尔街之狼》精髓:摔倒并不是坏事,就怕你因此放弃。 2019-04-26
《微观动机与宏观行为》精髓:个人的微观动机,是如何影响宏观行为结果的? 2019-04-26
《国富论》精髓:亚当·斯密提出的对后世影响深远的三个经济学理论:劳动分工理论、生产要素理论和宏观调控理论 2019-04-26
《动荡的世界》精髓:什么是动物精神?动物精神又是怎么影响2008年全球经济危机的,以及我们该如何预防动物精神,避免危机再次发生。 2019-04-26
《投资最重要的事》精髓:利用逆向思维,掌握既冷静又勇猛的投资方法,成为投资界真正厉害的人。 2019-04-26
《金融的本质》书中的精髓:金融危机是如何产生的?以及美联储是如何应对金融危机的? 2019-04-26
《周期》书中的精髓:如何利用周期,掌握世界的发展趋势,实现财富积累。 2019-04-26
《伟大的博弈》书中的精髓:华尔街是如何从一条小街,一步步发展为世界金融中心的。 2019-04-26
《逃不开的经济周期》书中的精髓:经济周期是推动创新变革和经济增长以及复兴的关键力量。 2019-04-26