OS概论1
1.设计现代OS的主要目标是什么?
在计算机上配置操作系统,其主要目标是:方便性,有效性,可扩充性,开放性。
一个没有OS的操作系统,就必须用机器语言书写程序,如果在计算机上配置了OS,系统便可以使用编译命令将用户使用高级语言书写的程序翻译成机器代码,或者直接通过OS所 提供的各种命令操作计算机系统,极大地方便了用户。
在未配置OS的计算机系统中,处理机,I/O等设备经常处于空闲状态,各种资源无法得到充分的利用,而OS可以通过合理地组织计算机的工作流程,加速程序的运行,缩短程序的 运行周期,从而提高了系统资源的利用率和系统的吞吐量。
OS从无结构发展成模块化结构,进而又发展成层次化结构,近年来采用的是微内核结构,一步一步的发展主要是为了系统的可扩充性,而微内核结构能够方便地添加新的功能和模 块,以及对原有的功能和模块进行修改,具有良好的可扩充性。
随着计算机应用的日益普及,计算机硬件和软件的兼容性问题便受到了关注,世界各国相应地指定了一系列的软,硬件标准,使得不同厂家按照标准生产的软,硬件都能在本国范 围内很好地相互兼容。
所谓开放性,是指系统能遵循世界标准规范,特别是遵循开放系统互连(OSI)国际标准,事实上,凡遵循国际标准所开发的硬件和软件,都能彼此兼容,方便地实现互连。
2.操作系统的作用可表现在哪几个方面?
OS作为用户与计算机硬件系统之间的接口
OS处于用户与计算机硬件系统之间,用户通过OS来使用计算机系统,或者说,用户在OS的帮助下能够方便,快捷,可靠地操作计算机硬件和运行自己的程序。
用户可以通过三种方式使用计算机 1.通过命令方式 2.系统调用方式 3.图标--窗口方式 实现与操作系统的通信,并取得它的服务
OS作为计算机系统资源的管理者
在一个计算机系统中,通常都含有多种硬件和软件资源,操作系统的主要功能也是对这些资源进行有效的管理。当一台计算机系统同时供多个用户使用时,很多用户对系统 中共享资源的需求有可能发生冲突,因此,操作系统必须对使用资源的请求进行授权,以协调多用户对共享资源的使用。
OS实现了对计算机资源的抽象
对于一台完全无软件的计算机系统,由于它向用户提供的是硬件接口,因此用户必须对物理接口的实现细节有充分的了解,为了方便用户使用I/O设备,人们在裸机上覆盖 上一层I/O设备管理软件,由它来实现对I/O设备操作的细节,并向上将I/O设备抽象为一组数据结构以及一组I/O操作命令,这样用户就可以利用这些命令来进行数据输入输 出,而无须关心I/O是如何具体实现的。即在裸机上铺设的I/O软件隐藏了I/O设备的具体细节,向上提供了一组抽象的I/O设备。

通常把覆盖了上述软件的机器称为扩充机器或虚机器,它向用户提供了一个对硬件操作的抽象模型。
I/O设备管理软件实现了对计算机硬件操作的第一个层次的抽象。
同理,为了方便用户使用文件系统,又可在第一层软件(I/O管理软件)上在覆盖一层用于文件管理的软件,,由它来实现对文件操作的细节,并向上层提供一组实现对文 件进行存取操作的数据结构和命令,即,文件管理软件实现了对硬件资源操作的第二个层次的抽象,依次类推,如果在文件管理软件上在覆盖一层面向用户的窗口软件,则 用户便可以在窗口环境下方便地使用计算机,从而形成一台功能更强的虚拟机。
OS是铺设在计算机硬件上的多层软件的集合,它们不仅增强了系统的功能,还隐藏了对硬件操作的具体细节,实现了对计算机硬件操作的多个层次的抽象模型。
不仅可以在底层对一个硬件资源加以抽象,还可以在高层对该资源底层已抽象的模型再次进行抽象,成为更高的抽象模型,随着抽象层次的提高,抽象接口所提供的功能就 越强,用户使用起来也越方便。
3.为什么说操作系统实现了对计算机资源的抽象?
隐藏了具体的细节,向上提供了一组抽象。
4.何为脱机I/O和联机I/O?
在脱离主机的情况下,进行数据的输入和输出,称为脱机输入/输出方式,把在主机的直接控制下进行的输入输出的方式称为联机输入输出方式。脱机的优点有1.减少了CPU的 空闲时间,2.提高了I/O速度。
5.单道批处理系统
为实现对作业的连续处理,需要把一批作业以脱机的方式输入进去,并在系统中配上监督程序,在它的控制下,使这批作业能一个接一个地处理。虽然系统对作业的处理是成批 进行的,但在内存中始终只保持一道作业,故称为单道批处理系统。
6.多道批处理系统
在该系统中,用户所提交的作业先存放在外存上,并排成一个队列,称为‘后备队列’,然后由作业调度程序按一定的算法,从后备队列中选择若干个作业调入内存,使它们共享 CPU和系统的各种资源。由于同时在内存中装有若干道程序,这样便可以在运行程序A时,利用其因I/O操作而暂停执行时的CPU空挡时间,在调度另一道程序B运行,同样可以 利用程序B在I/O操作时的CPU空挡时间,在调度程序C,使多道程序交替运行,这样便可以保持CPU处于忙碌状态。
7.分时系统
分时系统是指,在一台主机上连接多个配有显示器和键盘的终端并由此所组成的系统,该系统允许多个用户同时通过自己的终端,以交互方式使用计算机,共享主机中的资源。
为了实现人机交互,必须解决的问题是,如何使用户能与自己的作业进行交互。为此,系统必须能提供多个终端,同时给多个用户使用,再是,当用户在自己的终端上键入命令 时,系统能及时接收,并及时处理该命令,在将结果返回给用户。此后,用户可根据系统返回的响应情况,在继续键入下一条命令,这就是人机交互。而且,允许有多个用户同 时通过自己的键盘键入命令,系统也能全部及时接收并处理。
及时接收
要做到及时接收多个用户键入的命令或数据,只需在系统中配置一个多路卡就可以了,比如,主机需要连接64个终端时,就配置一个64用户的多路卡。多路卡的作用是,实现 分时多路复用,即主机以很快的速度周期性地扫描各个终端,在每个终端处停留很短的时间,用于接收从终端发来的数据。这样,就可以用很短的时间完成一次扫描,这样就分 时地接收各个用户从终端上输入的数据一次。为了能使从终端上输入的数据被依次地进行处理,还需要为每个终端配置一个缓冲区,用来暂存用户键入的命令或数据。
及时处理
人机交互的关键在于,用户键入命令后,能对自己的作业及运行及时地实施控制,或进行修改,因此,各个用户的作业都必须驻留在内存中,并能频繁地获得处理机运行。否 则,用户键入的命令将无法作用到自己的作业上。
作业直接进入内存,因为作业在磁盘上是不能运行的,所以作业应直接进入内存
采用轮转运行方式,如果一个作业独占CPU连续运行,那么其他的作业就没有机会被调度执行,为避免一个作业长期独占处理机,引入了时间片的概念,一个时间片,就是一段 很短的时间,系统规定每个作业只能运行一个时间片,然后就暂停该作业的运行,并立即调度下一个作业运行,如果在不长的时间内能够使所有的作业都执行一个时间片的时 间,便可以使每个用户都能及时地与自己的作业进行交互,从而可使用户的请求得到及时响应。
分时系统的特征:多路性,独立性,及时性,交互性。
OS概论1的更多相关文章
- OS概论2
实时系统 实时即表示及时,实时计算可以定义为这样一类计算:系统的正确性,不仅由计算的逻辑结果来确定,而且还取决于产生结果的时间.事实上,实时系统最主要的特征,是将时间作为关键参数,它必须对所接收到的某 ...
- 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 ...
随机推荐
- 漏洞大爆光:QQ漏洞、飞秋漏洞、360浏览器劫持…
随着互联网应用的高速发展,信息安全已深入到诸多领域,前段时间发生的"Struts 2"漏洞及"心脏出血"漏洞影响了二亿中国网民的信息安全.原因是程序猿缺少细致的 ...
- 玩转ButterKnife注入框架
在去年这个时候,我写过一篇介绍Android注解的文章android注解使用详解,这篇文章主要是介绍了Android中的AndroidAnnotations注入框架,AA框架有它自身的一些优点,这里不 ...
- jQuery 序列化表单 serialize() serializeArray()
1.serialize()方法 格式:var data = $("form").serialize(); 功能:将表单内容序列化成一个字符串. 这样在ajax提交表单数据时,就不用 ...
- js 如何判断数据是数据还是对象
如果用typeof测试,数组和对象都是显示的Object, 测试方式:var mycars=new Array();mycars[0]="Saab";mycars[1]=" ...
- magento 常用方法集锦
1,获得store的配置变量 Mage::getStoreConfig('sectionname/groupname/fields'); 1 Mage::getStoreConfig('section ...
- css 多栏自适应布局
在页面重构中,我们经常会需要实现多栏布局,例如n栏固定宽度 + m栏自适应宽度的组合,绝对布局+padding+百分比宽度是容易想到的比较暴力的解决方法,但是作为未来的"工程师", ...
- gulp自动化框架的搭建
自动化框架的搭建:https://github.com/zjhsd2007/www 屏蔽掉的部分是Test(文件夹的目录 也是你的项目名称);本地项目启动后 配合sass,会自动启动浏览器,然后好处多 ...
- pat_1014
1014. 福尔摩斯的约会 (20) 时间限制 50 ms 内存限制 32000 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 大侦探福尔摩斯接到一张奇怪的字 ...
- Oracle中用一张表的字段更新另一张表的字段
今天在做项目的过程中,发现开发库中某张表的某字段有许多值是空的,而测试库中该字段的值则是有的. 那么,有什么办法能将测试库中该字段的值更新到开发库中呢? SQL Server中这是比较容易解决的,而O ...
- iOS-开发日志-UIPageControl
UIPageControl 1. numberOfPages // 设置有多少页 默认为0 // 2) 设置页数 [pageControl setNumberOfPages:kImageCount] ...