操作系统类型&操作系统结构&现代操作系统基本特征
五大类型操作系统
(1). 批处理操作系统
- 用户脱机使用计算机
- 用户提交作业之后直到获得结果之前就不再和计算机打交道。
- 作业提交的方式可以是直接交给计算中心的管理操作员,也可以是通过远程通讯线路提交。
- 提交的作业由系统外存收容成为后备作业。
- 成批处理
- 操作员把用户提交的作业分批进行处理
- 每批中的作业将由操作系统或监督程序负责作业间自动调度执行。
- 多道程序运行
- 按多道程序设计的调度原则, 从一批后背作业中选取多道作业调入内存并组织它们运行, 成为多道批处理。
(2). 分时操作系统 (Linux, Windows其实都是)
特点:
交互性
- 用户可以在程序动态运行情况下对其加以控制。
- 其次, 用户上机提交作业方便。
- 分时系统还为用户之间进行合作提供方便。
多用户同时性
- 多个用户同时在自己的终端上上机, 共享CPU和其他资源, 充分发挥系统的效率。
独立性
- 客观效果上用户彼此间感觉不到有别人也在适用该台计算机, 如同自己独占计算机一样。
(3). 实时操作系统(嵌入式, 冰箱, 空调等家电的系统)
- 特点
- 实时时钟管理(定时处理和延时处理)。
- 连续的人 - 机对话(必要的)
- 要求采取过载保护措施。
- 例如对于短期过载, 把输入任务按一定的策略在缓冲区排队(自旋?), 等待调度。
- 对于持续性过载, 可能要拒绝某些任务的输入。
- 在实时控制系统中, 则及时处理某些任务, 放弃某些任务或降低对某些任务的服务频率。
- 高度可靠性和安全性采取冗余措施。双机系统前后台工作, 包括必要的保密措施等。
(4). 网络操作系统
特点:
计算机网络是一个互连的计算机系统的群体。
这些计算机都是自治的, 每台计算机有自己的操作系统, 各自独立工作, 它们在网络协议控制下协同工作。
系统互连要通过通信设施(硬件、软件来实现)。
系统通过通信设施执行信息交换、资源共享、互操作和协作处理, 实现多种应用要求。
(5). 分布式操作系统
- 特点:
- 计算机网络的开发都遵循协议,而对于各种分布式系统并没有制定标准的协议。(计算机网络也可被认为是一种分布式操作系统)
- 分布式系统要求一个统一的操作系统, 来实现系统操作的统一性
- 分布式操作系统对用户是透明的
- 但对计算机网络,若一个计算机上的用户希望使用另一台计算机上的资源,则必须明确指明是哪台计算机。
- 分布式系统的基础是网络。分布式系统已不仅是一个物理上的松散耦合系统, 同时还是一个逻辑上紧密耦合的系统。
- 分布式系统还处在研究阶段。而计算机网络已经在各个领域得到广泛的应用。
操作系统结构
(1). 单结构 (i.e. DOS)
- 不同的功能归类为不同的功能块,每个功能块相对独立,它们通过一定的方式进行联系,不同的功能块可以相互调用它们提供的服务。这样,整个操作系统就像是一个巨大的单一体,运行在系统的内核态下,为用户提供服务。
- 由于单结构系统的功能块之间结构复杂,修改某一功能块将导致其他功能块的修改,从而导致操作系统设计开发的困难。
(2). 分层结构
- 将操作系统分成若干层,低层次的功能为其上一个层次的功能提供服务,而高层次的层尤为更高一个层次的功能提供服务。
- 操作系统的所有功能都在内核态下运行,而从用户态转化为内核态需要一定的时间成本,这样造成了操作系统效率的嫡系。
- 内核态运行的程序可以访问所有的系统资源,随着操作系统越来越大,设计可靠和安全的操作系统将变得异常困难。
(3). 微内核 (i.e. unix)
- 目标是建立基于消息传送机制的最小内核,以便在此基础上建造对其他操作系统的模拟层来模拟其他操作系统的特性。
- 微内核的有优点是大大提高了操作系统的兼容性,使得基于微内核的操作系统能够模拟其他操作系统的特性,从而支持许多运行于其他操作系统上的应用程序。
(4). 模块化方法 (i.e. linux)
- 使用面向对象技术创建模块化内核。
- 采用模块化结构的操作系统由一些不同功能的结构模块集合组成。
每一个模块实现一个特定的功能,如调度、文件系统、设备驱动等等,并且这些模块可以根据需要自动进行加载和卸载。
本质上,一个模块就是内核在运行时可以链接或者断开链接的一个对象文件。
现代操作系统的基本特征
(1). 并发性(Concurrency)
- 并发: 在某一段时间间隔内,宏观上有多个程序在同时运行的状态。
- 并行: 在某一段时间间隔内,宏观上有多个程序在同时运行的状态。
(2). 共享性(Sharing)
- 多个用户或者程序共享操作系统中的软硬件资源。共享可以提高各种系统资源的使用效率。
- 由于共享资源属性不同,产生了不同的共享方式:
- 互斥共享方式(Mutual Exclusive):一段时间内只允许一个程序访问资源。互斥共享的设备有打印机、磁带机、绘图仪等等。
- 同时访问方式:允许一段时间内有多个程序同时对它们进行访问。有些快速设备,如磁盘,尽管也只能让多个程序串行访问,但由于程序访问和释放资源的时间较短,在宏观上可以看成是同时共享。另外,只读数据和数据结构、只读文件和可执行文件等软件资源也可以同时共享。
- 共享性和并发性相互依存,有一定的依赖关系,它们是操作系统最基本的两个特征。
(3). 虚拟性(Virtuality)
- 指通过某种技术把一个物理实体变成若干逻辑上的对应物。
- 操作系统也用到了很多虚拟技术来改善系统的性能,如虚拟存储,是为了提高内存利用率,在内存中部分装入程序,其余部分放在虚拟内存,也就是硬盘的一部分。
- SPOOLING技术则是为了减小等待和请求的重复申请,允许硬件设备虚拟为多台虚拟设备,实现脱机工作的方式。
(4). 异步性(Asynchronism)
- 指系统中的多个程序以不可预知的速度向前推进。
- 由于系统中的处理器资源往往是稀缺的,因此程序的执行不可能一气呵成,而是以走走停停的方式运行的。
操作系统类型&操作系统结构&现代操作系统基本特征的更多相关文章
- 操作系统基本概念(内核态与用户态、操作系统结构)-by sixleaves
内核态与用户态(为什么存在这种机制.程序应处于哪个状态.如何判断当前所处状态.哪些功能需要内核态.如何实现这种机制) 1.首先我们应该思考清楚为什么会有内核态和用户态?(为什么存在这种机制) 因为计算 ...
- 深入解析Windows操作系统笔记——CH2系统结构
2.系统结构 本章主要介绍系统的总体结构,关键部件之间的交互,以及运行在什么环境. 2.系统结构 2.1 需求和设计目标 2.2 操作系统模型 2.3 总体结构 2.3.1 可移植性 2.3.2 对称 ...
- Java 判断操作系统类型(适用于各种操作系统)
Java 判断操作系统类型(适用于各种操作系统) 最近一段时间写一个授权的程序,需要获取很多信息来保证程序不能随意复制使用,必须经过授权才可以. 为了限制用户使用的操作系统,必须有统一的方法来获取才可 ...
- H5案例分享:使用JS判断客户端、浏览器、操作系统类型
使用JS判断客户端.浏览器.操作系统类型 一.JS判断客户端类型 JS判断客户端是否是iOS或者Android手机移动端 通过判断浏览器的userAgent,用正则来判断手机是否是ios和Androi ...
- JS判断访问设备、客户端操作系统类型
先给出一个实例:判断windows.linux.android 复制以下代码另存为html文件即可. <html> <head> <title>判断操作系统< ...
- python实例[判断操作系统类型]
参考文献:http://bbs.chinaunix.net/thread-1848086-1-1.html 经常地我们需要编写跨平台的脚本,但是由于不同的平台的差异性,我们不得不获得当前所工作的平台( ...
- FreePascal - CodeTyphon交叉编译,在一个操作系统生成各个操作系统可以运行的程序!
致谢:[XE3]MN,让我加快完成了使用CodeTyphon进行交叉编译! CodeTyphon版本: 6.0 下载:http://www.pilotlogic.com/codetyphon/zips ...
- [转]JS判断访问设备、客户端操作系统类型
本文转自:http://www.cnblogs.com/duanguyuan/p/3534470.html 先给出一个实例:判断windows.linux.android 复制以下代码另存为html文 ...
- php获取当前操作系统类型
如何使用 php 获取当前操作系统类型呢? 严格来说这里分两种情况,一种情况是获取 服务器端 的操作系统类型,一种是获取 客户端 的操作系统类型. 下面将对如何使用php获取这两种情况下的操作系统类型 ...
随机推荐
- 病毒[POI2000](AC自动机+搜索)
题目链接:病毒[POI2000] 我们假设已经有一个无限长的串满足要求,那如果我们拿它去匹配会发生什么? 它会一直在Trie树和fail树上转圈,一定经过根节点且不会经过病毒字符串结束的节点. 所以如 ...
- Laradock 使用中遇到的问题汇总
1.ErrorException] mkdir (): Permission denied 解决:权限不够,thinkphp5下,runtime 文件夹改777,文件所有者改为 laradock(进入 ...
- 爱屋吉屋官网、APP停运!互联网房屋中介真的迎来了至暗时刻吗?
2018年底到2019年初,全球较差的经济大环境终于引来爆炸式的连锁反应.仅从国内的互联网行业来看,很多企业在浪潮退去后都只是在"裸泳".比如被爆料2018年全年亏损109亿元,且 ...
- SpringBoot集成百度UEditor图片上传后直接访问404解决办法
SpringBoot项目上传图片一般是上传至远程服务器存储,开发过程中可能会上传至当前项目的某个静态目录中,此时就会遇到这个问题,文件在上传之后直接访问并不能被访问到,必须重新加载项目. 首先分析一下 ...
- Python 矩阵相关
Python 中矩阵运算主要使用numpy库.NumPy的主要对象是同种元素的多维数组.这是一个所有的元素都是一种类型.通过一个正整数索引的元素表格(通常是元素是数字).因此对于随机查找来说,比pyt ...
- git/github error: failed to push some refs to 'https://github.com/shenhaha/cloudletter.git'
git 提交代码到github上报如下错误 报错分析: 解决方法: 关闭这两个设置 再次提交代码 success
- Ubuntu系统配置Zabbix前端及中文乱码解决方案
Ubuntu系统配置Zabbix前端及中文乱码解决方案 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.安装zabbix 博主推荐阅读: https://www.cnblogs ...
- 使用 Helm【转】
Helm 安装成功后,可执行 helm search 查看当前可安装的 chart. 这个列表很长,这里只截取了一部分.大家不禁会问,这些 chart 都是从哪里来的? 前面说过,Helm 可以像 a ...
- HihoCoder 1245:王胖浩与三角形 三角形边长与面积
#1245 : 王胖浩与三角形 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 王胖浩有一个三角形,三边长为a,b,c.他有特殊的能力,能增加三条边的边长,增加的总长度不能 ...
- navicat报错2005 - Unknown MySQL server host 'localhost' (0) 原因及解决方法
报错原因:没有连接互联网,用navicat连接本地mysql数据库,连接属性ip为localhost. 解决办法:将ip改为127.0.0.1即可.localhost是需要DNS解析后才会是127.0 ...