PS:今天开始操作系统的学习,主要目的是明确概念,博客主要针对于概念性的课后习题。
计算机系统是由硬件和软件组成的:硬件的系统包括控制器、运算器、储存设备、输入设备、输出设备五个部分(也可以说处理器CPU、内存、IO设备和总线四部分);软件通常分为应用软件、支撑软件和系统软件,操作系统是裸机之上的第一层系统软件。
注:CPU是处理器,由控制器和运算器组成
定义:操作系统是控制和管理系统内各种硬件和软件资源,有效的组织多道程序运行的系统软件,是用户与计算机之间的接口。
操作系统具有五大功能:存储管理、作业和进程管理、设备管理、文件管理和用户接口服务。
主要功能包括:内存分配、地址映射、内存保护和内存扩充。
内存分配是为每个应用程序分配内存空间。
地址映射是将逻辑地址转换为物理地址。
内存保护是保证不同程序在各自内存空间中活动,不能相互打扰。
内存扩充是当应用程序内存需求大于物理内存时,可以采用虚拟存储技术,即采用逻辑扩充内存,把当前正在使用的程序放在内存,其余部分放在外存,不断从外存向内存中置换程序。
操作系统有两个重要概念:作业和进程。简言之,作业是用户的计算任务,进程是程序的执行过程,是分配资源和在处理机上运行的基本单位。作业和进程管理基本功能包括:作业和进程调度、进程控制和进程通信。
作业和进程调度:一个作业通常通过两级调度才可以在CPU上执行,首先是作业调度,把选中的一批作业装入内存,分配资源,建立进程。然后进程调度按照一定算法从就绪进程中选出合适进程,使之在CPU上运行。
进程控制:进程是系统中活动的实体,进程控制包括创建进程、撤销进程、封锁进程、唤醒进程等。
进程通信:多个进程在活动过程中彼此会发生相互依赖或者相互制约的关系(同步与互斥),相互合作的进程之间往往需要通过通信机制交换信息。
只要使用计算机就离不开设备,键盘鼠标打印机等都是设备。设备的分配与驱动由操作系统负责,设备管理的主要功能包括:缓冲区管理、设备分配、设备驱动和设备无关性。
缓冲区管理:缓冲区管理的目的是解决CPU和外设速度不匹配的矛盾,使他们充分并行工作,提高各自利用率。
设备分配:根据用户的IO请求为该用户分配外部设备。
设备驱动:实现CPU与通道和外设之间的通信。由CPU向通道发出IO命令,后者驱动相应设备进行IO操作,任务完成后通道向CPU发出中断信号,由相应的中断处理程序进行处理。
设备无惯性:用户编写的程序与实际使用的物理设备无关,由操作系统把用户程序中使用的逻辑设备映射到物理设备。
在计算机上工作时经常要使用文件,文件管理功能包括:文件存储空间的管理、文件操作的一般管理、目录管理、文件读写管理。
文件存储空间管理:文件一般放在磁盘上,需要文件系统对所有文件的存储空间进行统一管理,分配空间,回收空间,从而提高外设的利用率。
文件操作的一般管理:包括文件的创建、删除、打开、关闭等。
目录管理:对目录文件进行组织,实现用户对文件的按名存取以及快速查询与共享
文件读写管理:根据用户的请求,从外存中读写数据,对各个文件进行存取控制,防止未授权用户的存取或破坏。
用户上机操作时直接用到操作系统提供的用户接口,通过这些接口,操作系统对外提供多种服务,方便开发。常见的三种接口:程序接口、命令行接口、图形用户接口。
程序接口:也成系统调用接口,是操作系统内核与用户程序、应用程序之间的接口。在LINUX系统中系统调用以C函数的形式出现,所有内核之外的程序都必须经由系统调用才能获得操作系统的服务,只能在程序中存在,不能作为命令在终端上输入和执行,进入内核执行。
命令行接口:LINUX中的SHELL,在提示符 之后直接输入命令,如ls。不属于操作系统内核,相应的程序是在用户空间运行的。
图形用户接口:GUI,也不属于操作系统内核。
软件通常分为三类:应用软件、支撑软件(工具软件)与系统软件。应用软件是用户写的软件,如腾讯QQ;支撑软件是辅助软件技术人员开发的软件,包括各种开发工具如Eclipse等;系统软件包括操作系统(WINDOWS、LINUX)、编译程序(C/C++、JAVA)等。
操作系统属于系统软件,是裸机之上的第一层软件,是整个计算机系统的控制管理中心。其他所有软件都建立在操作系统之上。操作系统对他们既具有支配权力,又为其建造必备环境。通常把经过软件扩充功能后的机器称为虚拟机,在裸机上安装操作系统之后就位其他软件和用户提供了工作环境,往往把这种工作环境称作软件平台。
脱机I/O:是指在主机之外另设外围计算机,他不与主机直接连接,只与外部设备打交道。外围计算机专门负责输入输出工作,主机专门完成快速计算任务,二者可以并行操作。该方式下的输入输出由外围机控制完成,是在脱离主机的情况下进行的。
联机I/O:程序和数据的输入输出都是在主机的直接控制下进行的。
推动操作系统发展的因素可以主要归结为硬件技术更新和应用需求扩大两大方面。
操作系统基本类型可以分为5种:批处理系统、分时系统、实时系统、网络系统和分布式系统。
批处理系统:是早期的操作系统,在这种系统中,把用户的计算任务按作业进行管理。该系统有两个特点,一是多道,二是成批。多道是指内存中存放多个作业,并且在外设上存放大量的后备作业。成批是指在在系统运行过程中不允许用户和机器之间发生交互作用。
优点:1.系统资源利用率高 2.系统吞吐量大
缺点:1.用户作业等待时间长 2.没有交互能力
概念:分时系统是指多个用户分享同一台计算机 , 它将计算机的中央处理机在时间上分割成很小的时间段 , 每个时间段称为一个时间片 , 系统将 CPU的时间片轮流分配给多个用户 , 每个用户通过终端使用同一台计算机 , 并通过终端直接控制程序运行 , 进行人与机器之间的交互。
分时操作系统的工作方式:一台主机接了若干个终端,每个终端有一个用户在使用。用户交互式地向系统提出命令请求,系统接收命令后采用时间片轮转的方式处理请求。
基本特征:1同时性,若干用户可以同时使用系统;2交互性,可以人机交互;3独立性 各用户可以彼此独立地操作;4 及时性 用户能在短时间内得到系统响应
特点:1接口友好;2多终端;3便于资源共享与信息交互
实时系统是指计算机能及时响应外部事件请求,在规定的时间内完成对该事件的处理并控制所有设备和任务协调一致工作的操作系统。
实时系统与分时系统的差别:1.交互性 分时系统强;2.实时性 实时系统强;3.可靠性 实时系统高
实现方式:实时系统的实现方式可分为硬式和软式两种。
硬式实时系统:硬式实时系统保证关键任务按时完成,从恢复保存的数据所用的时间到操作系统完成任何请求的时间都规定好了。有一个刚性的、不可改变的时间限制。因此数据存放在短期存储器中,几乎从未使用虚拟存储器。
软式实时系统:软式实时系统对时间限制稍微弱一点,在这种实时系统中关键的实时任务比其他任务有更高的优先级。软式实时系统可以与其他类型的系统结合在一起。如UNIX是分时系统但是可以具有实时功能。
特点:实时性、高可靠性和安全性
计算机网络:为了实现异地计算机之间的数据通信和资源共享,可将分布在各处的计算机和终端设备通过数据通信系统联结在一起,构成一个系统,这就是计算机网络。计算机网络需要两大支柱:计算机技术和通信技术。
网络操作系统:网络操作系统是用户与本地操作系统之间的接口,网络用户只有通过他才能获得网络所提供的各种服务。所以网络操作系统通常运行在服务器上,是基于计算机网络、在各种计算机操作系统上按网络体系机构心意标准开发的软件,包括网络管理、通信、安全、资源共享和各种网络应用,目前网络操作系统主要是客户-服务器模式。
基本特征:1.接口一致性,服务器为共享资源提供统一接口;2.资源透明性,服务器了解整个网络系统中共享资源的状态并为客户自动选择;3.操作可靠性,通过主机对资源进行统一管理和调度,当某一资源出现问题,可以马上分配另一处资源;4.处理自主性;5.执行并行性,计算机网络中任何一个工作站都称为一个节点,网络操作系统不仅实现本机上多到程序的并发执行而且实现系统中各节点机上进程的真正并行。
概念:多计算机系统除网络系统外,还有分布式系统。他把大量的计算机组织在一起,彼此通过高速网络进行连接。分布式操作系统是网络操作系统的更高形式,他保持了网络操作系统的全部功能,而且具有更高性能和透明性。
网络操作系统与分布式操作系统的差别:
(1)分布性: 分布式操作系统是驻留在系统的各个结点上, 而网络操作系统的控制功能大部分是集中在服务器上。
(2)并行性: 分布式操作系统可将一个用户的多个任务分配到多个计算机上并行执行;而网络环境下,每个用户的一个或多个任务只能在自己的计算机上处理。
(3)透明性:分布式系统能隐藏自己内部的物理位置、并发控制、系统故障等实现细节来使用系统;而网络操作系统计算机之间的通信需要 IP地址。
(4)共享性:分布式系统中,所有分布在各个站点的软、硬件资源均可供系统中所有用户共享, 并能以透明的方式使用它们; 而网络操作系统共享的资源大多数是设置在服务器中,它机的资源一般由本机用户使用。
(5)健壮性:分布式系统任何结点的故障都不会对系统造成太大的影响,某些部件的故障可以通过容错技术实现系统的重构;而网络操作系统的控制功能大部分集中在服务器中,这使得服务器会成为单点故障,它一出故障,就会影响整个系统的可靠性。
缺点:软件少,安全性差。
1.并发性
2.共享性 资源被多个进程公用
3.虚拟性 物理地址对应若干逻辑地址
4.异步性 操作系统允许多个并发进程共享资源,使得每个进程的运行过程受到其他进程制约,使进程的执行不是一气呵成,而是以停停走走的方式运行。
硬件:计算机物理装置本身。
软件:计算机执行的程序。
多道程序设计:内存中多道程序交叉运行,共享资源
并行:两个及以上的事件在同一时刻发生则称为并行,真正意义上的并行必须要多个CPU。
并发:两个及以上的程序在一段时间内(宏观)在同一个CPU上执行,称作并发。
吞吐量:系统吞吐量是指在单位时间内中CPU完成的总工作量
分时:若干并发程序对CPU时间的共享。
实时:快速响应。
系统调用:是操作系统内核与用户程序、应用程序之间的接口。
1.命令行接口 2.程序接口 3.图形化接口
(详见2.5)
微软的WINDOWS系统、LINUX系统、UNIX系统
们在使用计算机时,首先接触的是用户界面,我们可以通过键盘上输入命令,在桌面上点击鼠标完成操作,这时系统就知道执行相应的功能。
然后,我们要在磁盘上建立新文件,打开已存储的文件,对文件进行读、写和修改等操作,这是由操作系统的文件管理来帮助实现的。
我们要把程序装入内存,系统中只有一个内存,操作系统的存储管理功能需要为用户程序来分配内存空间,并进行数据的保护。
我们从键盘上输入数据或命令,运行结果在屏幕上显示出来或者在打印机上打印出来。当我们需要用到外部设备的时候,操作系统的设备管理可以解决设备分配和驱动的问题。
从资源管理方面来看 ,操作系统的功能就是管理硬件资源与软件资源,控制协调各个程序对资源的利用。包括:资源监视、资源分配策略、资源回收。资源管理包含资源复用,分为时间复用和空间复用。时间复用就是时间片,空间复用是指多个程序同时存放在内存里。
当执行操作系统时,处理机处于核心态。这时它有较高权限,可以执行所有指令。
当执行用户程序时,处理机处于用户态。这是权限较低,只能执行指令集中的非特权指令。
设置两种状态是为了保护操作系统程序,防止受到用户程序的损害。
及时响应和高可靠性、安全性
特权指令是一类只能在核心态下执行的机器指令。而系统调用不是机器指令,它往往以函数调用的形式出现,实现操作系统提供的子功能,它是操作系统与用户的编程接口。在用户程序中可以使用系统调用来获得操作系统服务,在系统调用代码中可以使用特权指令。
层次结构,即是把操作系统划分为内核和若干模块,这些模块按功能的调用次序排列成若干层次,各层次之间只能是单向依赖或单向调用关系,即低层为高层服务,高层可以调用低层的功能,反之则不能。这样不但系统结构清晰,适应性强,易于扩充和移植,而且不构成循环调用。
优点:
1.在一台机器上可以同时运行多个操作系统。方便用户使用
2.系统安全 有效的保护了系统资源
3.为软件的开发与调试提供了良好的环境
4.组建虚拟网络,可以创造出多个理想的工作环境
缺点:
1.对硬件要求较高,主要是CPU、硬盘和内存
2.本身非常复杂
3.执行任务时的速度会受到一些影响
微内核方法是将操作系统所有非基本部分从内核中移走,仅存放那些能实现现代OS最基本的核心功能的部分,使得操作系统核心部分很小。这样可以提高了系统的可扩展性;增强了系统的可靠性,可移植性,提供了对分布式系统的支持。
对于所有机器来说,初启的共同目的:将操作系统的副本读入内存中,建立正常的运行环境。
1.硬件监测 对系统中配置的硬件进行诊断检查,确定处于正常状态。
2.加载引导程序
3.初始化内核
4.用户登录