OS概论2
实时系统
实时即表示及时,实时计算可以定义为这样一类计算:系统的正确性,不仅由计算的逻辑结果来确定,而且还取决于产生结果的时间。事实上,实时系统最主要的特征,是将时间作为关键参数,它必须对所接收到的某信号做出‘及时’或‘实时’的反应。由此得知,实时系统是指系统能及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。
实时系统的类型
(1)周期性实时任务和非周期性实时任务。周期性实时任务是这样一类任务,外部设备周期性地发出激励信号给计算机,要求它按指定周期循环执行,以便周期性地控制某外 部设备。反之,非周期性实时任务并无明显的周期性,但都必须联系着一个截止时间,或称最后期限,这又可分为(1)开始截止时间,指某任务在某时间以前必须开始执行。 (2)完成截止时间,指某任务在某时间以前必须完成。
(2)硬实时任务和软实时任务。硬实时任务是指系统必须满足任务对截止时间的要求,否则可能出现难以预测的后果。软实时任务也联系一个截止时间,但并不严格,若偶尔 错过了任务的截止时间,对系统产生的影响也不会太大。
单用户单任务操作系统
只允许一个用户上机,且只允许用户程序作为一个任务运行,这是最简单的微机操作系统
单用户多任务操作系统
只允许一个用户上机,但允许用户把程序分为若干个任务,使他们并发执行,从而有效地改善了系统的性能。
多用户多任务操作系统
允许多个用户通过各自的终端,使用同一台机器,共享主机系统的各种资源,而每个用户程序又可进一步分为几个任务,使它们能并发执行,从而可进一步提高资源利用率和系 统吞吐量。
操作系统的基本特性(并发,共享,虚拟,异步)
并发
并行性和并发性是即相似又有区别的两个概念,并行性是指两个或多个事件同一时刻发生,而并发性是指两个或多个事件在同一时间间隔内发生。
在多道程序环境下,并发性是指在一段时间内宏观上有多个程序在同时运行,但在单处理机系统中,每一时刻却仅能有一道程序运行,即微观上这些程序只能是分时交替执行。 例如在1秒中,可以分时段让程序运行,在宏观上,有好多道程序在运行,但微观上,程序是分时交替执行的。
假如在计算机系统中有多个处理机,这些可以并发执行的程序便可以被分配到多个处理机上,实现并行执行,即利用每个处理机来处理一个可并发执行的程序,这样,多个程序 便可同时执行。
引入进程
在一个未引入进程的系统中,在属于同一个应用程序的的计算程序和I/O程序之间只能是顺序执行,但在为计算程序和I/O程序分别建立一个进程后,这两个进程便可并发执行, 对内存中的多个程序分别建立一个进程,它们就可以并发执行。
所谓进程,是指在系统中能独立运行并作为资源分配的基本单位,它是由一组机器指令,数据和堆栈等组成的,是一个能独立运行的活动实体。多个进程之间可以并发执行和交 换信息。
进程和并发是现代操作系统中最重要的基本概念,也是操作系统运行的基础。
共享
在OS环境下的资源共享或称资源复用,是指系统中的资源可供内存中多个并发执行的进程共同使用。
1.互斥共享方式:
系统中的某些资源,虽然可以提供给多个进程使用,但应规定在一段时间内,只允许一个进程访问该资源,即,在系统中应建立一种机制,以保证多个进程对这类资源的互 斥访问。
把这种在一段时间内只允许一个进程访问的资源,称为临界资源或者独占资源。
2.同时访问方式:
系统中还有另一类资源,允许在一段时间由多个进程‘同时’对它们进行访问,这里所谓的同时,在单处理机下是宏观意义上的,而在微观上,这些进程对该资源的访问是交 替进行的。
并发和共享是多用户OS的两个最基本的特征。它们又是互为存在的条件。
资源共享是以进程的并发执行为条件的,若系统不允许并发执行也就不存在资源共享问题。
若系统不能对资源共享实施有效管理,以协调好诸进程对共享资源的访问,也必然会影响到诸进程间并发执行的程度,甚至根本无法并发执行。
虚拟
为了提高通信信道的利用率而引入“虚拟”技术,该技术采用“空分复用”或“时分复用”技术,将一条物理信道变为若干条逻辑信道,使原来只能供一对用户通话的物理信道,变为 能供多个用户同时通话的逻辑信道。
在OS中,把通过某技术将一个物理实体变为若干个逻辑上的对应物的功能称为“虚拟”。前者是实,即实际存在的,而后者是虚的,是用户感觉上的东西。相应地,把用于实现虚 拟的技术称为虚拟技术,在OS中也是利用时分复用和空分复用技术来实现“虚拟”的。
时分复用技术
时分复用技术能提高资源利用率的根本原因在于,它利用某设备为一用户服务的空闲时间,又转去为其他用户服务,使设备得到最充分的利用。
空分复用技术
空分复用技术则是利用存储器的空闲空间分区域存放和运行其他的多道程序,以此来提高内存的利用率。
异步
进程是以人们不可预知的速度向前推进的,这就是进程的异步性。
OS概论2的更多相关文章
- OS概论1
1.设计现代OS的主要目标是什么? 在计算机上配置操作系统,其主要目标是:方便性,有效性,可扩充性,开放性. 一个没有OS的操作系统,就必须用机器语言书写程序,如果在计算机上配置了OS,系统便可以使用 ...
- Core OS 层
Core OS层的底层功能是很多其他技术的构建基础.通常情况下,这些功能不会直接应用于应用程序,而是应用于其他框架.但是,在直接处理安全事务或和某个外设通讯的时候,则必须要应用到该层的框架. Acce ...
- FreeBSD——艺术、科学、哲学概论
FreeBSD--艺术.科学.哲学概论→→→→→概论: 信息都有一定的时效性.那么现在是什么时间?现在已经发布了 FreeBSD 12.2,距离下一个版本 13.0 还有约 4 个月. 『约定』 使用 ...
- 2.2 追求并发的极致-线程概论 -《zobolの操作系统学习札记》
2.2 追求并发的极致-线程概论 为了追求程序运行之间的并发性,计算机科学家们发明了进程.为了进一步的追求进程内部的并发性,工程师们又提出了线程. 正是线程的出现,给予了程序员更多地操纵OS的自由,可 ...
- NodeJs之OS
OS Node.js提供了一些基本的底层操作系统的模块OS. API var os = require('os'); console.log('[arch] 操作系统CPU架构'+os.arch()) ...
- Node.js:OS模块
os模块,可以用来获取操作系统相关的信息和机器物理信息,例如操作系统平台,内核,cpu架构,内存,cpu,网卡等信息. 使用如下所示: const os = require('os'); var de ...
- Xamarin+Prism开发详解四:简单Mac OS 虚拟机安装方法与Visual Studio for Mac 初体验
Mac OS 虚拟机安装方法 最近把自己的电脑升级了一下SSD固态硬盘,总算是有容量安装Mac 虚拟机了!经过心碎的安装探索,尝试了国内外的各种安装方法,最后在youtube上找到了一个好方法. 简单 ...
- Mac OS 使用 Vagrant 管理虚拟机(VirtualBox)
Vagrant(官网.github)是一款构建虚拟开发环境的工具,支持 Window,Linux,Mac OS,Vagrant 中的 Boxes 概念类似于 Docker(实质是不同的),你可以把它看 ...
- Mac OS、Ubuntu 安装及使用 Consul
Consul 概念(摘录): Consul 是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置.与其他分布式服务注册与发现的方案,比如 Airbnb 的 SmartStac ...
随机推荐
- iOS 状态栏、导航栏、工具栏、选项卡大小
1.状态栏状态栏一般高度为20像素,在打手机或者显示消息时会放大到40像素高,注意,两倍高度的状态栏在好像只能在纵向的模式下使用.如下图用户可以隐藏状态栏,也可以将状态栏设置为灰色,黑色或者半透明的黑 ...
- QT下自定义QQ聊天窗口tab控件
1.用继承pushbutton派生类来实现tab按钮,里面加一个QPushbutton关闭按钮:(自定义类:CCustomTabButton) 2.多个tab按钮用QHboxLayout做容器: 3. ...
- java带图片的邮件发送方法实现
package sendEmail; import java.util.Properties; import javax.activation.DataHandler; import javax.ac ...
- linux-memory-buffer-vs-cache
http://stackoverflow.com/questions/6345020/linux-memory-buffer-vs-cache
- careercup-递归和动态规划 9.9
9.9 设计一种算法,打印八皇后在8*8棋盘上的各种摆法,其中每个皇后都不同行.不同列,也不在对角线上.这里的“对角线”指的是所有的对角线,不只是平分整个棋盘的那两条对角线. 类似leetcode:N ...
- C#读取Exeal文件
今天写一个读取Exeal的时候遇到一个问题就是引用了Mircosotf.Office.Interop.Exeal类库的时候没有办法读取到 纠结了好久百度了一下发现别人是这样写的using Exeal= ...
- iOS之XIB拖拽scrollView
在使用storyboard和xib时,我们经常要用到ScrollView,还有自动布局AutoLayout,但是ScrollView和AutoLayout 结合使用,相对来说有点复杂.根据实践,我说一 ...
- iOS之应用程序国际化
一.程序国际化 准备工作: 1.首先我们要先创建一个工程,我们给他命名Internationalization-Demo,然后添加语言. 从代码中分离文本: 目前,应用展示的所有文本都是以硬编码字符串 ...
- Java开发十大常用网站
Stackoverflow:有成千上万个好问题和答案 DZone:有相当多的开发者在这个网站上分享他们博客文章 LeetCode:如果有Java方面的面试问题可在教程中找到答案 Java SE技术文档 ...
- ThinkPHP函数详解:import方法
import方法是ThinkPHP框架用于类库导入的封装实现,尤其对于项目类库.扩展类库和第三方类库的导入支持,import方法早期的版本可以和java的import方法一样导入目录和通配符导入,后来 ...