操做系统是计算机学科的基础课程,是理解计算机运行原理的重要基石,学习操做系统不只可以让编程人员了解计算机运行逻辑并且还有助于培养编程“软实力”,若是想真正在编程之路上走下去,那么操做系统将会是重要的加速器,本系列将走进操做系统课程,了解在计算机世界的规则...算法
正文编程
1、操做系统是什么缓存
说到操做系统,很多人会瞬间想到微软的Windows系列,有经验的编程人员或许会想到unix,Linux等,但对于操做系统的定义,很多人恐怕就说不上来了,其实在计算机学科领域至今也未造成一个统一的标准化的定义,出现这个问题一方面因为操做系统实现两项相对独立的功能---扩展机器和管理资源,另外一方面取决于从什么角度来看待操做系统---用户观点仍是系统观点。安全
一、操做系统做为扩展机器网络
操做系统能够将硬件细节与编程人员隔离开,用户可使用操做系统提供的各类命令,直接打开文件、读写文件、更改目录等,在作这些事情时,只须要关心本身要实现的目标,并不用考虑硬件是如何动做,从而隐藏了底层硬件的特性。经过操做系统的加工,呈如今用户面前的机器是功能更强,使用更方便的机器,一般把逻辑之上覆盖各类软件,从而造成功能更强的机器称为扩展机器或虚拟机。并发
二、操做系统做为资源管理器分布式
操做系统能够用来管理硬件资源和数据、程序等软件资源,控制、协调各个程序对这些资源的利用,尽量地充分发挥各类资源的做用,做为资源管理者,操做系统主要作如下工做:工具
三、用户角度看操做系统性能
操做系统应当处于用户与计算机硬件系统之间,为用户提供使用计算机系统的接口。学习
四、系统角度看操做系统
操做系统是硬件之上的第一层软件,它要管理计算机系统中各类硬件资源和软件资源的分配问题,要解决大量对资源请求的冲突问题,决定把资源分配给谁,什么时候分配,分配多少等,使得资源的利用高效并且公平。此外操做系统要对IO设备和用户程序加以控制,保证设备正常工做,防止非法操做,及时诊断设备的故障等。
综上所述,能够获得:
总之,一般能够这样定义操做系统:操做系统是控制和管理计算机系统内各类硬件和软件资源,有效地组织多道程序运行的系统软件,是用户和计算机之间的接口。
2、操做系统的主要功能
操做系统主要功能有一下5个方面:存储管理、做业和进程管理、设备管理、文件管理和用户接口服务
一、存储管理
存储管理的主要功能包括:内存分配,地址映射,内存保护和内存扩充
1.1 内存分配
内存分配的主要任务是为每道程序分配必定的内存空间,为此操做系统必须记录整个内存的使用状况,处理用户提出的申请,按照某种策略实施分配,接收系统或用户释放的内存空间。因为内存是宝贵的系统资源,在制定分配策略时应该如何考虑提升内存的利用率,减小内存浪费。
1.2 地址映射
CPU在执行用户程序时,要从内存中取出指令或数据,为此就必须把所用的相对地址(或称逻辑地址)转换成内存的物理地址。
1.3 内存保护
不一样用户的程序都放在同一个内存中,就必需要保证它们在各自的内存空间中活动,不能相互干扰,更不能侵占操做系统的空间,为此须要创建内存保护机制。
1.4 内存扩充
一个系统中的内存容量是有限的,不能随意扩充其大小。然而,当对内存“求大于供”的局面时,就须要采起虚拟存储技术。将程序当前使用的部分放在内存,而其他部分放在磁盘上,之后根据程序执行时的要求和内存当时使用的状况,随机地将所需部分调入内存;必要时还要把已分配出去的内存回收,供其余程序使用(内存置换)
二、做业和进程管理
操做系统中有两个重要概念,即做业与进程,简言之,用户的计算任务称为做业,程序的执行过程称做进程(进程是分配资源和在处理机上运行的基本单位)。众所周知,计算机系统中最重要的资源是CPU,对它管理的优劣直接影响整个系统的性能。因此,做业和进程管理的基本功能包括:做业和进程调度、进程控制和进程通讯。
2.1 做业和进程调度
一个做业一般通过两级调度才能在CPU上执行,首先是做业调度,它把选中的一批做业放入内存,并分配其余必要资源,为这些做业创建相应的进程,而后进程调度按照必定的算法从就绪进程中选出一个合适进程,使之在CPU上运行、
2.2 进程控制
进程是操做系统中活动的实体,进程控制包括建立进程、撤销进程、封锁进程、唤醒进程等。
2.3 进程通讯
多个进程在活动过程当中彼此间会发生相互依赖或者相互制约的关系,为保证系统中全部的进程都能正常活动,就必须设置进程同步机制,它分为同步方式与互斥方式。相互合做的进程之间每每须要交换信息,为此,操做系统须要提供通讯机制。
三、设备管理
设备的分配和驱动由操做系统负责,即设备管理的主要功能包括:缓冲区管理,设备分配,设备驱动和设备无关性
3.1 缓冲区管理
缓冲区管理的目的是解决CPU和外设速度不匹配的矛盾,使它们充分并行工做,提升各自的利用率。
3.2 设备分配
根据用户的IO请求和相应的分配策略,为该用户分配外部设备、通道和控制器等
3.3 设备驱动
实现CPU与通道和外设之间的通讯,由CPU向通道发出IO指令,后者驱动相应设备进行IO操做。当IO任务完成后,通道向CPU发出中断信号,由相应的中断处理程序进行处理
3.4 设备无关性
设备无关性又称设备独立性,即用户编写的程序与实际使用的物理设备无关,由操做系统把用户程序中使用的逻辑设备映射到物理设备。
四、文件管理
文件管理功能包括:文件存储空间的管理,文件操做的通常管理,目录管理,文件的读写管理和存取控制
4.1 文件存储空间的管理
系统文件和用户文件都要放在磁盘上,为此,须要由文件系统对全部文件以及文件的存储空间进行统一管理:为新文件分配必要的外存空间,回收释放的文件空间,提升外存的利用率。
4.2 文件操做的通常管理
文件操做的通常管理包括:文件的建立、删除、打开、关闭等
4.3 目录管理
目录管理包括目录文件的组织、实现用户对文件的“按名存取”,以及目录的快速查询和文件共享等
4.4 文件的读写管理与存取控制
根据用户的请求,从外存中读取数据或者将数据写入外存中。为了保证文件信息的安全性,防止未受权用户的存取或破坏,对各个文件(包括目录)进行存取控制
五、用户接口服务
用户上机操做时直接使用到操做系统提供的用户接口,操做系统对外提供多种服务,使得用户能够方便、有效地使用计算机硬件和运行本身的程序,使得软件开发变的容易、高效。现代操做系统提供三种用户接口:程序接口,命令行接口以及图形用户接口。
5.1 程序接口
也称系统调用接口,系统调用是操做系统内核与用户程序、应用程序之间的接口,它位于操做系统核心层的最外层。全部内核以外的程序都必须经由系统调用才能得到操做系统的服务。系统调用只能在程序中使用,不能直接做为命令在终端上输入和执行。因为系统调用可以改变处理机的执行状态,从用户态变为核心态,直接进入内核执行,因此执行效率很高。用户在本身程序中使用系统调用,从而获取系统提供的众多基层服务,
5.2 命令行接口
在提示符以后用户从键盘上输入命令,命令解释程序接收并解释这些命令,而后把它们传递给操做系统内部程序,执行相应功能。命令行接口不属于操做系统内核,相应的程序是在用户空间中运行的。
5.3 图形用户接口
用户利用鼠标,窗口,菜单,图标等图形用户界面工具,能够直观、方便,有效地使用系统服务和各类应用程序及实用工具。图形用户接口也不属于操做系统内核,相应的程序是在用户空间中运行的。
3、操做系统的类型
操做系统基本类型可分为5种:批处理系统,分时系统、实时系统、网络系统和分布式系统
一、批处理系统
早期的计算机操做系统大多数是批处理系统,在这种系统中,把用户的计算任务按“做业”进行管理。其工做流程通常以下:
上述步骤将一直重复下去,使得各做业一个接一个地流入系统,直到没有做业。各个做业通过处理后又顺序地退出系统,造成一个源源不断的做业流。
能够看出批处理系统具备两个特色---“多道”与“成批”
批操做系统优势:
批操做系统缺点:
二、分时系统
针对批操做系统的缺点,人们提出了分时系统,它让用户经过终端设备联机使用计算机。
在单CPU系统中没法真正的实现多个程序的并行(两个或两个以上事件或活动在同时刻发生就称做并行),为了在多道程序环境中提升资源利用率,每每采用多道程序分时共享硬件和软件资源的技术,分时就是对时间的共享。在分时系统中,分时主要是指若干程序对CPU时间的共享。分享的时间单位称为时间片,它每每很短,如几十毫秒。这种分时的实现,须要有中断机构和时钟系统的支持。利用时钟系统把CPU时间分红一个一个的时间片,操做系统轮流把每一个时间片分给各个程序,每道程序一次只能够运行一个时间片。当时间片计数到时后,产生时间中断,控制转向操做系统,操做系统选择另外一道程序并分给它时间片,让其投入运行。到达给定时间,再发中断,从新选程序(或做业)运行,如此反复。
两个或两个以上的程序在一段时间内,在同一CPU上执行就称做并发,在分时系统中利用并发机制实现了一个物理CPU(也能够是多个物理CPU)在若干道程序之间的多路复用。
分时系统的基本特征:
分时系统的优势:
经常使用的通用操做系统是分时系统与批处理系统的结合,其原则是:分时优先,批处理在后。“前台”响应需频繁交互的做业,“后台”处理时间性不强的做业。
三、实时系统
在计算机的不少应用领域内,要求对实时采样数据进行及时处理,作出相应的反应,若是超出限定的时间就可能丢失信息或影响下一批信息的处理。实时系统是指计算机能及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制全部设备和任务协调一致工做的操做系统。实时系统的目标是:对外部请求在严格时间范围内作出反应,并有高可靠性和完整性。其主要特色是:资源的分配和调度首先要考虑实时性,而后才是效率。此外实时系统还应该具备较强的容错能力。实时系统如今有三种典型的应用形式:过程控制系统、信息查询系统和事务处理系统。
实时系统与分时系统的差异:
四、网络操做系统
因为单台计算机资源毕竟有限,为了实现异地计算机之间的数据通讯和资源共享,可将分布在各处的计算机和终端设备经过数据通讯系统联结在一块儿,构成一个系统,这就是计算机网络,计算机网络须要两大支柱----计算机技术和通讯技术。
计算机网络的特征:
网络操做系统通常创建在各个主机的本地操做系统基础之上,其功能是实现网络通讯,资源共享和保护,以及提供网络服务和网络接口等。在网络操做系统的做用下,对用户屏蔽了各个主机对一样资源所具备的不一样存取方法。
网络操做系统的特性:
五、分布式操做系统
分布式操做系统把大量的计算机组织在一块儿,彼此经过高速网络进行链接。分布式系统有效地解决了地域分布很广的若干计算机系统间的资源共享,并行工做,信息传输和数据保护等问题。
分布式操做系统特色:
分布式系统是网络操做系统的更高形式,它保持了网络操做系统的所有功能,并且还具备可靠性和高性能。网络操做系统和分布式操做系统虽然都属于管理分布在不一样地理位置的计算机,但最大的差异是:网络操做系统知道计算机确切的地址,而分布式系统则不知道计算机的确切地址;分布式操做系统负责整个资源的分配,能很好地隐藏系统内部的实现细节,如对象的物理位置,这些对用户都是透明的。
4、计算机硬件结构
从硬件的角度看,现代通用计算机系统是由CPU、内存和若干IO设备组成,它们经由系统总线连接在一块儿,实现彼此通讯。从功能上讲,是由五大功能部件组成,即运算器、控制器、存储器、输入设备和输出设备。这五大功能部件相互配合,协同工做。其中运算器和控制器集成在一片或几片大规模或超大规模集成电路中,称为中央处理器(CPU)。
一、处理器
CPU是计算机的“大脑”,它从内存中提取指令并执行它们。CPU工做的基本周期是:提取指令,译码分析,执行指令。对后面的的指令按相似步骤进行处理。CPU内部包含若干寄存器,其中,一类是通用寄存器,用来存放关键变量和中间结果。另外一类是专用寄存器,如程序计数器(PC),栈指针寄存器和程序状态字(PSW)。同时通常操做系统都提供核心态与用户态两种处理机执行状态。其目的是为了保护操做系统程序(特别是内核部分),防止受到用户程序的损害。当执行操做系统程序时,处理机处于核心态。这时它具备较高特权,能够执行全部指令,包括普通用户程序中不能使用的特权指令,从而能对全部寄存器和内存进行访问,以及启动IO操做等。而用户程序是在用户态下执行的,它的的权限较低,只能执行指令集中非特权指令。
二、存储器
在任何计算机中,存储器都是最主要的组成部分之一。按照速度、容量和成本划分,存储器系统构成一个层次结构,以下图所示:
三、IO设备
IO设备是人机交互的工具,它一般由控制器和设备自己两部分组成。控制器是IO设备的电子部分,它协调和控制一台或多台IO设备的操做,实现设备操做与整个系统操做的同步。设备控制器自己有一些缓冲区和一组专用寄存器,负责在外部设备和本地缓冲区之间移动数据。设备实际上隐藏在控制器的后面,于是,操做系统老是与控制器打交道,而不是与设备直接做用。因为设备的种类有不少,于是设备控制器的类别就不少,这就须要不一样的软件来控制它们。这些向控制器发布命令并接收其回答信息的软件就是设备驱动程序。不一样操做系统上的不一样控制器分别对应不一样的设备驱动程序,理论上讲,驱动程序能够在核心以外运行,但当前的系统都把它放在操做系统中,使其在核心方式下运行。
四、总线
按照总线上传送的信息所起的做用,系统总线基本上能够分为以下三部分:
本文内容参考孟庆昌老师所著《操做系统》一书