OS系列 1-1

os的目的和作用

os的发展历程

os的基本特征

os的主要功能

os的结构

内核

OS的目的和作用

目的

方便性:极大的方便了用户,使计算机变的易学易用
有效性:提高系统资源的利用率或者提高系统的吞吐量
开放性:遵循国际标准,使得各个软件硬件能够兼容
可扩展性:可以方便的添加新的模块

作用

用户与计算机硬件的接口
    通过命令方式、系统调用、图标窗口方式来使用计算机
计算机四类资源的管理者
    处理器资源管理和分配
    存储器内存资源的分配和回收
    IO设备的分配、操作
    文件资源的共享和保护
实现了计算机资源的抽象
    第一层:采用IO设备管理软件,实现对计算机硬件操作的抽象
    第二层:在第一层的基础上覆盖文件管理软件,实现对硬件资源操作的抽象

OS的发展过程

单道批处理系统
    为了实现对作业的连续处理,需要先把一批作业以脱机方式输入到磁盘上,并在系统中配上监督程序(Monitor),在它的控制下,使得这批作业能一个接着一个的连续工作。具体的工作过程是首先由监督程序将磁带上的第一个作业装入内存,并把运行控制权交给作业;该作业处理完时,又把控制权交给监督程序,再有监督程序把磁带的第二个作业调入内存等等。可以看成是串行的。
    优点:解决人机矛盾和CPU与IO设备速度不匹配问题,提高系统资源的利用率和系统吞吐量。    
    缺点:不能充分的利用系统资源,现很少使用。

多道批处理系统

用户所提交的作业先放在外存上,并排成一个对列(后备对列),由作业调度程序按照一定的算法,从后备对列中选择若干个作业调入内存,使其共享CPU和系统中的各种资源。同时在内存中装入若干程序,这样可以在A程序运行时,利用其IO操作而暂停的CPU空挡时间,再调度另一道程序B运行,同样可以利用B程序在IO操作时调用CPU空档调用程序C运行,使用多道程序交替运行,始终保持CPU忙碌的状态。
优势:资源利用率高,使CPU始终处于忙碌的状态,提高内存的利用率,提高IO利用率;系统吞吐量大(CPU和其资源始终保持忙碌的状态,仅在作业完成时或者运行不下去的时候才切换,系统开销小)。
缺点:平均周转时间长,无交互能力。

分时系统

 一台主机连接了若干个终端;每个终端有一个用户在使用;交互式地向系统提出命令请求;系统接受每个用户的命令;采用时间片轮转方式处理服务请求;并通过交互方式在终端上向用户显示结果;用户根据上步结果发出下道命令。
优点:    
    交互性:用户与OS可以进行实时的操作
    及时性:用户可以在短时间内得到回应

实时系统

实时操作系统(RTOS)是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理
硬实时:在规定的时间内完成任务
软实时:按照优先级,将事情完成

分布式系统--》》属于分布式软件系统中的一部分

负责管理分布式处理系统资源和控制分布式程序运行
将不同的物理计算机硬件通过网络进行连接,来达到一个完整计算机。
但是不是传统的计算机结构,一种新的计算机组成,于是软件等也要改变

OS的基本特征

共享

系统中的资源可供内存中多个并发执行的进程使用
种类:互斥共享方式 和 同时访问方式

并发

两个或者多个事件在同一时间间隔发生
在宏观上而言,有多个程序同时运行

异步

由于资源等因素的限制,使进程的执行通常都不可能“一气呵成”,而是以“停停走走”的方式运行。
当发出请求,客户端因为缺少资源,而无法即时完成,故需要等待,在有需要的资源的时候,就完成,发送结果

虚拟

一种将物理实体变成多个逻辑上的对应物的技术
种类:时空复用和空分复用

OS的主要功能

管理处理器
管理存储器
管理文件
管理设备
用户接口
命令接口
程序接口
图形接口

OS的结构

整体式结构》》简单架构\无结构

最早的系统的结构,因为早期注重功能的实现,所以没有注重系统的结构。
因为这个原因,所以系统的调用的接口简单,系统的效率高。但是缺点就是后期的维护不好,可读性差

模块化结构

根据模块之间关联越少越好的原则,将系统的功能划分位不同的模块,模块之间通过接口进行通信。使得操作系统的    结构非常清晰,模块独立,但是模块内部联系紧密。

层次结构

将功能按照功能调用划分为多个层。但是各个层之间只有单向调用的关系。
于是形成了模块之间的依赖性,将各个模块之间的依赖关系变得简单。同时,将功能的实现变得有序。

微内核结构》》插件化结构

采用微内核的方式,内核只保存操作系统的最基本的功能,其余功能由其余的模块实现,其余功能叫 服务器
    优点:
        提高了系统的扩展性
        提高了系统的可靠性
        可移植性强
        提高了对分布式系统的支持
        融入了面向对象技术

内核

单体内核

内核本身只是一个程序,而内核所有的功能都是链接在这个程序的内部,如果某个进程要使用某个功能的话,将是进入内核空间,然后调用相对应的功能函数来实现的。

微内核

为微内核自身只提供最基本的操作系统的功能,其他功能由能够独立完成的模块提高