技术标签: 实时操作系统 操作系统的发展 嵌入式 操作系统分类 分时操作系统
目录
上篇文章我们探讨了裸机系统与操作系统的区别,具体内容可以翻阅上面内容,这篇文章我们一起来看下操作系统的分类。
操作系统一般可分为三种基本类型,即批处理系统、分时系统和实时系统,随着计算机体系结构的发展,又出现了许多种操作系统,它们是嵌人式操作系统、个人操作系统、网络操作系统和分布式操作系统。本篇文章我们主要介绍批处理系统,分时操作系统和实时操作系统。
用户在计算机上算题的所有工作都要人工干预,如程序的装入、运行、结果的输出等。随着计算机硬件的发展,人机矛盾(速度和资源利用)越来越大,必须寻求新的解决办法。
手工操作阶段有两个突出的缺点:
唯一的解决办法就是用高速的机器代替相对较慢的手工操作来对作业进行控制。
批处理阶段(操作系统开始出现),为了解决人机矛盾及CPU和I/O设备之间速度不匹配的矛盾,出现了批处理系统。它按发展历程又分为单道批处理系统、多道批处理系统(多道程序设计技术出现以后)。
批处理(Batch Processing)操作系统的工作方式是:用户将作业交给系统操作员,系统操作员将许多用户的作业组成一批作业,之后输入到计算机中,在系统中形成一个自动转接的连续的作业流,然后启动操作系统,系统自动、依次执行每个作业。最后由操作员将作业结果交给用户。
批处理操作系统又分为单道批处理系统和多道批处理系统
系统对作业的处理是成批进行的,但内存中始终保持一道作业。该系统是在解决人机矛盾和CPU与I/O设备速率不匹配的矛盾中形成的。
单道批处理系统的主要特征如下:
此时面临的问题是:每次主机内存中仅存放一道作业,每当它运行期间(注意这里是“运行时”,并不是“完成后”)发出输入/输出请求后,高速的CPU便处于等待低速的I/O完成状态。为了进一步提高资源的利用率和系统的吞吐量,引入了多道程序技术。
多道程序设计技术允许多个程序同时进入内存并运行。即同时把多个程序放入内存,并允许它们交替在CPU中运行,它们共享系统中的各种硬、软件资源。当一道程序因I/O请求而暂停运行时,CPU便立即转去运行另一道程序。它没有用某些机制提高某一技术方面的瓶颈问题,而是让系统的各个组成部分都尽量去“忙”,花费很少时间去切换任务,达到了系统各部件之间的并行工作,使其整体在单位时间内的效率翻倍。
多道程序设计的特点有:
多道程序设计技术的实现需要解决下列问题:
在批处理系统中釆用多道程序设计技术,就形成了多道批处理操作系统。该系统把用户提交的作业成批地送入计算机内存,然后由作业调度程序自动地选择作业运行。
优点是资源利用率高,多道程序共享计算机资源,从而使各种资源得到充分利用;系统吞吐量大,CPU和其他资源保持“忙碌”状态。缺点是用户响应的时间较长。不提供人机交互能力,用户既不能了解自己程序的运行情况,也不能控制计算机。
批处理操作系统的特点是:多道和成批处理。
分时(Time Sharing)操作系统的工作方式是:一台主机连接了若干个终端,每个终端有一个用户在使用。用户交互式地向系统提出命令请求,系统接受每个用户的命令,采用时间片轮转方式处理服务请求,并通过交互方式在终端上向用户显示结果。用户根据上步结果发出下道命。分时操作系统将CPU的时间划分成若干个片段,称为时间片。操作系统以时间片为单位,轮流为每个终端用户服务。每个用户轮流使用一个时间片而使每个用户并不感到有别的用户存在。分时系统具有多路性、交互性、“独占”性和及时性的特征。多路性指,伺时有多个用户使用一台计算机,宏观上看是多个人同时使用一个CPU,微观上是多个人在不同时刻轮流使用CPU。交互性是指,用户根据系统响应结果进一步提出新请求(用户直接干预每一步)。“独占”性是指,用户感觉不到计算机为其他人服务,就像整个系统为他所独占。及时性指,系统对用户提出的请求及时响应。
在操作系统中釆用分时技术就形成了分时系统。所谓分时技术就是把处理器的运行时间分成很短的时间片,按时间片轮流把处理器分配给各联机作业使用。若某个作业在分配给它的时间片内不能完成其计算,则该作业暂时停止运行,把处理器让给其他作业使用,等待下一轮再继续运行。由于计算机速度很快,作业运行轮转得很快,给每个用户的感觉好像是自己独占一台计算机。
分时操作系统是多个用户通过终端同时共享一台主机,这些终端连接在主机上,用户可以同时与主机进行交互操作而互不干扰。所以,实现分时系统最关键的问题是如何使用户能与自己的作业进行交互,即当用户在自己的终端上键入命令时,系统应能及时接收并及时处理该命令,再将结果返回用户。分时系统也是支持多道程序设计的系统,但它不同于多道批处理系统。
多道批处理是实现作业自动控制而无需人工干预的系统,而分时系统是实现人机交互的系统,这使得分时系统具有与批处理系统不同的特征,其主要特征如下:
同时性。同时性也称多路性,指允许多个终端用户同时使用一台计算机,即一台计算机与若干台终端相连接,终端上的这些用户可以同时或基本同时使用计算机。
交互性。用户能够方便地与系统进行人-机对话,即用户通过终端釆用人4^1对话的方式直接控制程序运行,与同程序进行交互。
独立性。系统中多个用户可以彼此独立地进行操作,互不干扰,单个用户感觉不到别人也在使用这台计算机,好像只有自己单独使用这台计算机一样。
及时性。用户请求能在很短时间内获得响应。分时系统釆用时间片轮转方式使一台计算机同时为多个终端服务,使用户能够对系统的及时响应感到满意。
虽然分时操作系统比较好地解决了人机交互问题,但是在一些应用场合,需要系统能对外部的信息在规定的时间(比时间片的时间还短)内作出处理(比如飞机订票系统或导弹制导系统)。因此,实时系统应运而生。
实时操作系统(RealTimeOperatingSystem,RTOS)是指使计算机能及时响应外部事件的请求在规定的严格时间内完成对该事件的处理,并控制所有实时设备和实时任务协调一致地工作的操作系统。实时操作系统要追求的目标是:对外部请求在严格时间范围内做出反应,有高可靠性和完整性。
为了能在某个时间限制内完成某些紧急任务而不需时间片排队,诞生了实时操作系统。这里的时间限制可以分为两种情况:如果某个动作必须绝对地在规定的时刻(或规定的时间范围)发生,则称为硬实时系统。例如,飞行器的飞行自动控制系统,这类系统必须提供绝对保证,让某个特定的动作在规定的时间内完成。如果能够接受偶尔违反时间规定,并且不会引起任何永久性的损害,则称为软实时系统,如飞机订票系统、银行管理系统。
在实时操作系统的控制下,计算机系统接收到外部信号后及时进行处理,并且要在严格的时限内处理完接收的事件。实时橾作系统的主要特点是及时性和可靠性。
网络操作系统把计算机网络中的各台计算机有机地结合起来,提供一种统一、经济而有效的使用各台计算机的方法,实现各个计算机之间的互相传送数据。网络操作系统最主要的特点是网络中各种资源的共享以及各台计算机之间的通信。
分布式计算机系统是由多台计算机组成并满足下列条件的系统:系统中任意两台计算机通过通信方式交换信息;系统中的每一台计算机都具有同等的地位,即没有主机也没有从机; 每台计算机上的资源为所有用户共享;系统中的任意若千台计算机都可以构成一个子系统,并且还能重构;任何工作都可以分布在几台计算机上,由它们并行工作、协同完成。用于管理分布式计算机系统的操作系统称为分布式计算机系统。该系统的主要特点是:分布性和并行性。分布式操作系统与网络操作系统本质上的不同之处在于分布式操作系统中,若干台计算机相互协同完成同一任务。
操作系统的发展历程如图1-1所示。
图1-1 操作系统的发展历程
此外还有嵌入式操作系统、服务器操作系统、多处理器操作系统等。
文章浏览阅读221次。Slynyrd像素画教程:像素画基础教程作者:Slynyrd[1]翻译:三二 (转载请注明出处)关注公众号:教你画像素画微信号:pixelfish微博:教你画像素画2014在合适的条件下,你会对自己成长的速度感到惊讶。题图:Slynyrd像素画是什么?像素画是一种以低分辨率美学为特征的数码艺术。低分辨率是像素画的基本特征。然而,起决定因素是意图。应该以精确的方式仔细考虑像素,并不是说每一个像素都需..._excel 800像素
文章浏览阅读2.3k次。Error:Execution failed for task ':app:transformClassesWithDexForZhenghaoDebug'.> com.android.build.api.transform.TransformException: java.lang.RuntimeException: com.android.ide.common.process.Proce..._com.android.build.api.transform.transformexception: java.lang.runtimeexcepti
文章浏览阅读92次。ORACLE错误一览表,方便大家查询!ORA-00001: 违反唯一约束条件 (.)ORA-00017: 请求会话以设置跟踪事件ORA-00018: 超出最大会话数ORA-00019: 超出最大会话许可数ORA-00020: 超..._ora-01045: 用户 c##duaudit 没有 create session 权限; 登录被拒绝
文章浏览阅读1.5k次。1. Java中awt包AWT事件模型Event1) 事件-描述发生了什么的对象2) 事件源-事件的产生器3) 事件处理器-接收事件、解释事件并处理用户交互的方法Button是ActionEvent的对象。事件处理器是一个方法。之前使用层次模型(现在已经不使用了)。事件监听器:委托模型。增加事件处理器button.addActionListener()import java.awt.BorderL..._import java.awt.event.actionevent; import java.awt.event.actionlistener; imp
文章浏览阅读1k次。paper csjcai.github.iocsjcai/ECPeNetgithub.com 该文是香港理工张磊团队提出的一种基于极限通道先验的动态场景去模糊方法。 深度学习方法在动态场景去模糊领域取得了极大的进步。作者认为:这些方法在训练数据集上通过重建损失学习得到,集成合适的图像先验信息作为正则项可以进一步提升去模糊性能。为此,作者提出一种极限通道先验嵌入网络(ECPeNet)以集成极限通道先验信息(如亮度通道与暗通道先验信息)进一步提升去模糊性能,作者设计了一种新颖的可训练的极限通道先验计算单元._kohler数据集
文章浏览阅读1.2k次,点赞2次,收藏2次。文章目录1、介绍2、业务统计3、代码实现1、介绍Spark SQL有三种不同实现方式:(1)使用DataFrame与RDD结合的方式。(2)纯粹使用DataFrame的方式。(3)使用DataSet的方式。本文仅介绍第二种方式,其他方式可以参考源码(底部)。DataFrameAPI是从Spark1.3开始就有的,它是一种以RDD为基础的分布式无类型数据集,类似于传统数据库中的二维表格。Da..._基于spark的 评价系统
文章浏览阅读118次。这里展示一下使用表的SHRINK技术完成空间的释放。同时注意,在使用这种方法之前要注意启动行移动的特性(如果不启用,通过报错信息亦可以得到相应的提示信息)。1.默认情况下表上的行移动是关闭的如果不是关闭的状态,我们也可以使用下面..._shrink space清理空块
文章浏览阅读195次。H5页面input输入框含有键盘自带的表情符时显示异常_js h5输入框输入表情 显示键盘自带表情符
文章浏览阅读5.6k次。最近工作中遇到一个关于@AutoWired注解使用的细节问题,以前没有注意到,现在特意记录一下。问题描述:在我的一个工具类中,使用@Autowired需要注入一个dao对象,然后工具类的方法中会调用该dao对象中的方法,在运行时发现报空指针异常,dao对象居然是null。相关代码如下:工具类代码如下:/** * 对象级的码表转换工具类 * @author: lsl */p..._springmvc 使用@autowired 调用dao时null
文章浏览阅读5.9k次,点赞3次,收藏58次。参考:https://github.com/MarcioCerqueira/RealTimeSpecularHighlightRemoval论文:Real-Time High-Quality Specular Highlight Removal using Efficient Pixel Clustering图像增强:opencv去除图片的高光import cv2import os,shutil#找亮光位置def create_mask(imgpath): image = cv2.i_图片去除光线python
文章浏览阅读3.2k次。•UITableView的每一行都是一个UITableViewCell,通过dataSource的tableView:cellForRowAtIndexPath:方法来初始化每一行•UITableViewCell内部有个默认的子视图:contentView,contentView是UITableViewCell所显示内容的父视图,可显示一些辅助指示视图••辅助指示视图的作用是显示一个表_uitableviewcell contentview
文章浏览阅读1.4k次。Image类的属性:一:format含义:源文件的文件格式。如果是由PIL创建的图像,则其文件格式为None。例子:from PIL import Imageim=Image.open("D:\\22.jpg")print(im.format)输出为 JPEG注:在输入文件路径的时候,要注意格式,否则容易报错,可以参考blog:https://blog.csdn...._pil image格式问题 none