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 ... 
随机推荐
- SCVMM问题汇总
			1.在分配虚机到Hyper-V主机时,提示可用内存不足: 可能是虚机分配使用了动态内存,动态内存的最大值太大导致,将其改为固定内存大小即可. 
- PHP class_exists 检查类是否已定义
			(PHP 4, PHP 5) class_exists — 检查类是否已定义 bool class_exists ( string $class_name [, bool $autoload ] ) ... 
- jQuery Mobile方向感应事件
			在现在的智能手机中,都有对方向变换的自动感知功能,比如当手机方向从水平方向切换到垂直方向时,则会触发该事件.在jQuery Mobile中,可以通过orientationchange事件进行绑定,并且 ... 
- hi3531 SDK 编译 uboot, 改动PHY地址, 改动 uboot 參数 .
			一,编译uboot SDK文档写得比較清楚了,写一下须要注意的地方吧. 1. 之前用SDK里和别人给的已经编译好的uboot,使用fastboot工具都刷不到板子上.最后自己用SDK里uboot源代码 ... 
- OpenCV -- 获取轮廓照片
			import cv2 img = cv2.imread( 'E:\A.jpeg' ) cv2.imshow( 'img', img ) gray = cv2.cvtColor( img, cv2.CO ... 
- RHCA442学习笔记-Unit10内存地址及分配
			Unit 10 Memory Addressing and Allocation 内存地址及分配 学习目标: A. 虚拟地址与物理地 B. 调整内存地址分配 C. 解析内存溢出 10.1 O ... 
- Winform之跨线程访问控件(在进度条上显示字体)
			此文章对于遇到必须使用线程但是没有办法在线程内操作控件的问题的处理 有很好的解决方案(个人认为的.有更好的方案欢迎交流.) 在做跨线程访问之前我们先了解下我们所做的需要达到的效果: 这个是批量的将x ... 
- js 获取当前时间格式怎么转换?
			toLocaleDateString() 得到的时间是 yyyy年MM月dd日 HH:ss:mm 格式的,怎么转换成yyyy-MM-dd HH:ss:mm 在js里面 仅针对这个问题来说,不需要那么大 ... 
- mysql自增
			主键设置自增,同时主键需要是int类型 
- OC加强-day04
			#pragma mark 00知识回顾 //定义一个函数 函数没有返回值函数有一个参数:返回值是double 参数是两个int的block void test(int a); void test(do ... 
