博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
操作系统简介
阅读量:5774 次
发布时间:2019-06-18

本文共 2604 字,大约阅读时间需要 8 分钟。

一 为什么要有操作系统

现代计算机系统是一个复杂的系统,程序员无法把所有的硬件操作细节都了解到,管理这些硬件并且加以优化使用是非常繁琐的工作,为了将程序员就从这些繁琐的工作中解脱了出来,计算安装了一层软件(系统软件),称为操作系统,操作系统就是一个协调、管理和控制计算机硬件资源和软件资源的控制程序,它的任务就是为用户程序提供一个更好、更简单、更清晰的计算机模型,并管理计算机硬件,使应用软件直接使用操作系统提供的功能来间接使用硬件。

 

二 操作系统的位置

 

操作系统位于计算机硬件与应用软件之间,本质也是一个软件。操作系统由操作系统的内核(运行于内核态,管理硬件资源)以及系统调用(运行于用户态,为应用程序员写的应用程序提供系统调用接口)两部分组成,所以,单纯的说操作系统是运行于内核态的,是不准确的。

 

三 操作系统的功能

功能一:为应用程序提供如何使用硬件资源的抽象

例如:操作系统提供了文件这个抽象概念,对文件的操作就是对磁盘的操作,有了文件我们无需再去考虑关于磁盘的读写控制

 

 

作用二:把多个程序对硬件的竞争变的有序化(管理应用程序)

现代的操作系统运行同时运行多道程序,操作系统的任务是在相互竞争的程序之间有序地控制对处理器、存储器以及其他I/O接口设备的分配。

例如:

同一台计算机上同时运行三个程序,它们三个想在同一时刻在同一台计算机上输出结果,那么开始的几行可能是程序1的输出,接着几行是程序2的输出,然后又是程序3的输出,最终将是一团糟(程序之间是一种互相竞争资源的过程)

操作系统将打印机的结果送到磁盘的缓冲区,在一个程序完全结束后,才将暂存在磁盘上的文件送到打印机输出,同时其他的程序可以继续产生更多的输出结果(这些程序的输出没有真正的送到打印机),这样,操作系统就将由竞争产生的无序变得有序化。

 

四 操作系统的发展

第一代计算机(1940~1955):真空管和穿孔卡片

特点: a. 没有操作系统的概念

       b. 所有的程序设计都是直接操控硬件

优点:

      程序员在申请的时间段内独享整个资源,可以即时地调试自己的程序(有bug可以立刻处理)

缺点:

      浪费计算机资源,一个时间段内只有一个人用。

 

第二代计算机(1955~1965):晶体管和批处理系统 

特点:

设计人员、生产人员、操作人员、程序人员和维护人员直接有了明确的分工,计算机被锁在专用空调房间中,由专业操作人员运行,这便是‘大型机’。

有了操作系统的概念

有了程序设计语言:FORTRAN语言或汇编语言,写到纸上,然后穿孔打成卡片,再讲卡片盒带到输入室,交给操作员,然后喝着咖啡等待输出接口

优点:批处理,节省了机时

缺点:
1.整个流程需要人参与控制,将磁带搬来搬去

2.计算的过程仍然是顺序计算-》串行

3.程序员原来独享一段时间的计算机,现在必须被统一规划到一批作业中,等待结果和重新调试的过程都需要等同批次的其他程序都运作完才可以(这极大的影响了程序的开发效率,无法及时调试程序)

 

第三代计算机(1965~1980):集成电路芯片和多道程序设计

所谓多道程序设计技术,就是指允许多个程序同时进入内存并运行。即同时把多个程序放入内存,并允许它们交替在CPU中运行,它们共享系统中的各种硬、软件资源。当一道程序因I/O请求而暂停运行时,CPU便立即转去运行另一道程序。

多道程序设计技术不仅使CPU得到充分利用,同时改善I/O设备和内存的利用率,从而提高了整个系统的资源利用率和系统吞吐量(单位时间内处理作业(程序)的个数),最终提高了整个系统的效率。

 

第四代计算机(1980~至今):个人计算机

 

五 多道技术:

多道技术中的多道指的是多个程序,多道技术的实现是为了解决多个程序竞争或者说共享同一个资源(比如cpu)的有序调度问题,解决方式即多路复用,多路复用分为时间上的复用和空间上的复用。

空间上的复用:将内存分为几部分,每个部分放入一个程序,这样,同一时间内存中就有了多道程序。

 

时间上的复用:当一个程序在等待I/O时,另一个程序可以使用cpu,如果内存中可以同时存放足够多的作业,则cpu的利用率可以接近100%,类似于我们小学数学所学的统筹方法。

空间上的复用最大的问题是:程序之间的内存必须分割,这种分割需要在硬件层面实现,由操作系统控制。如果内存彼此不分割,则一个程序可以访问另外一个程序的内存,

首先丧失的是安全性,比如你的qq程序可以访问操作系统的内存,这意味着你的qq可以拿到操作系统的所有权限。

其次丧失的是稳定性,某个程序崩溃时有可能把别的程序的内存也给回收了,比方说把操作系统的内存给回收了,则操作系统崩溃。

 

 

现代计算机或者网络都是多用户的,多个用户不仅共享硬件,而且共享文件,数据库等信息,共享意味着冲突和无序。操作系统主要使用来1.记录哪个程序使用什么资源2.对资源请求进行分配3.为不同的程序和用户调解互相冲突的资源请求。我们可将上述操作系统的功能总结为:处理来自多个程序发起的多个(多个即多路)共享(共享即复用)资源的请求,简称多路复用多路复用有两种实现方式1.时间上的复用当一个资源在时间上复用时,不同的程序或用户轮流使用它,第一个程序获取该资源使用结束后,在轮到第二个。。。第三个。。。例如:只有一个cpu,多个程序需要在该cpu上运行,操作系统先把cpu分给第一个程序,在这个程序运行的足够长的时间(时间长短由操作系统的算法说了算)或者遇到了I/O阻塞,操作系统则把cpu分配给下一个程序,以此类推,直到第一个程序重新被分配到了cpu然后再次运行,由于cpu的切换速度很快,给用户的感觉就是这些程序是同时运行的,或者说是并发的,或者说是伪并行的。至于资源如何实现时间复用,或者说谁应该是下一个要运行的程序,以及一个任务需要运行多长时间,这些都是操作系统的工作。2.空间上的复用每个客户都获取了一个大的资源中的一小部分资源,从而减少了排队等待资源的时间。例如:多个运行的程序同时进入内存,硬件层面提供保护机制来确保各自的内存是分割开的,且由操作系统控制,这比一个程序独占内存一个一个排队进入内存效率要高的多。有关空间复用的其他资源还有磁盘,在许多系统中,一个磁盘同时为许多用户保存文件。分配磁盘空间并且记录谁正在使用哪个磁盘块是操作系统资源管理的典型任务。这两种方式合起来便是多道技术详解
详解

 

转载地址:http://ytaux.baihongyu.com/

你可能感兴趣的文章
有关UIView、subview的几个基础知识点-IOS开发 (实例)
查看>>
【SICP练习】49 练习2.17
查看>>
OC 线程操作3 - NSOperation
查看>>
上载EXCEL到SAP系统的方法之一
查看>>
jquery 使用on方法给元素绑定事件
查看>>
通过 ['1', '2', '3'].map(parseInt) 学习 map 和 parseInt 函数
查看>>
python的threading和multiprocessing模块初探
查看>>
蓝桥杯 前缀表达式
查看>>
RTL8711AM
查看>>
理解css margin
查看>>
3 web框架
查看>>
使用Sonar管理代码质量(二)–Sonar工作区
查看>>
continue break
查看>>
GE_OG_CALC_COLUMN_EMPTY
查看>>
C++的头文件处理
查看>>
poj 2763(LCA + dfs序 +树状数组)
查看>>
计算机学院大学生程序设计竞赛(2015’12) 1006 01 Matrix
查看>>
HDU 5698 瞬间移动
查看>>
用Ant实现Java项目的自动构建和部署
查看>>
2019拼多多前端笔试
查看>>