操作系统(1)—操作系统概述

来源:互联网 发布:淘宝卖家不说话怎么办 编辑:程序博客网 时间:2024/04/27 13:58

零、计算机系统自下而上可粗分为四个部分:硬件、操作系统、应用程序和用户(与计算机组成原理的分层不同)。操作系统是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便地接口和环境的程序集合。它是计算机系统中最基本的系统软件。

一、操作系统的特征:

(1)并发(concurrence):两个或多个事件在同一时间间隔内发生。引入进程的目的是为了是程序能并发执行。

并发和并行的区别:并发是指多个事件在同一时间间隔内执行(某一个时间点只执行行一个任务),并行是指多个事件在同一时间执行(某一个时间点执行多个任务),并行需要硬件支持。

(2)共享(sharing):系统中的资源可供多个并发执行的进程共同使用。

共享的方式:

  1. 互斥共享。一段时间内只允许一个进程访问该资源。 同时把这种共享的资源成为临界资源或独占资源。
  2. 同时访问。与短时间内允许多个进程“同时”访问该资源。宏观上同时,但在微观上,这些进程是交替对资源进行访问。这种资源的例子有:磁盘设备。
(3)虚拟(virtual):把物理上的实体变为若干个逻辑上的对应物。例如:虚拟处理器、虚拟内存和虚拟外部设备等。
  1. 虚拟处理技术是通过多道程序设计基础让多到程序并发执行,来分时使用一个处理器。虽然只有一个处理器,但它能同时为多个用户服务,让每个用户都觉得有一个cpu专门为他服务。(把一个物理上的cpu虚拟为多个逻辑上的cpu)
  2. 虚拟存储技术可以将一台机器的物理存储器变为虚拟存储器,以便从逻辑上来扩充存储器的容量。
  3. 虚拟设备技术可以将一台物理I/O设备虚拟为多台逻辑上的I/O设备,并允许每个用户占用一台逻辑上的I/O设备,以便多个用户共享一个设备(原来是临界资源)。

(4)步(asynchronism):在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。异步性使操作系统运行在一种随机的环境下,可能导致进程产生与时间有关的错误(就像对全局变量的访问顺序不当会导致程序出错一样)。但是只要运行环境相同,操作系统必须保证多次运行进程,都获得相同的结果。


二、直观地了解操作系统。用户是雇主,操作系统是工人,处理机、存储器、设备、文件等几部分是机器。工人通过接收用户的命令来对机器进行管理,就像操作系统通过接收用户的指令来操作计算机和管理资源。

操作系统通过给用户提供接口来方便用户使用操作系统。用户通过接口来对操作系统进行操作。


三、操作系统是计算机系统资源的管理者

  1. 处理机管理:在多道程序环境下,处理机的分配和运行都已进程(或线程)为基本单位,因而对处理机的管理可归结为对进程的管理。进程何时创建、撤销,如何管理、避免冲突、合理共享就是进程管理的最主要的任务。进程管理的最主要功能有:进程控制、进程同步、进程通信、死锁处理、处理机调度等。
  2. 存储器管理:是为了给多道程序的运行提供良好的环境,方便用户使用以及提高内存的利用率,只要包括内存分配、地址映射、内存保护与共享和内存扩充等功能。
  3. 文件管理。计算机中的信息都是以文件的形式存在的,操作系统中负责文件管理的部分成为文件系统。文件管理系统包括文件存储空间的管理、目录管理及文件管理和保护等。
  4. 设备管理。设备管理的主要任务是完成用户的I/O请求,方便用户使用各种设备,并提高设备的利用率,主要包括缓冲管理、设备分配、和虚拟设备等功能。
ps:以上都由工人(操作系统)负责,雇主(用户)不需要关注。


四、操作系统作为用户与计算机硬件系统之间的接口。操作系统提供给用户的接口主要分为两类:
  1. 命令接口,用户利用命令来组织和控制作业的执行。命令接口控制的主要方式有两种:                                                                                       (1)联机控制方式:又称交互式命令接口,适用于分时或实时操作系统的接口。他由一组键盘操作命令组成。用户每个输入一条指令,控制权就转入操作系统的命令解释程序,然后由命令解释程序对输入的命令解释并执行,完成制定的功能,然后由命令解释程序对输入的命令解释并执行,完成指定的功能。之后控制权又转回到控制台或终端,此时用户又可以输入下一条命令。 (雇主说一句,工人做一件事,并做出反馈,强调交互性)                                                                                                                                                                    (2)脱机命令接口又称批处理命令接口,适用于批处理系统,它由一组作业控制命令组成。脱机用户不能直接干预作业的运行,应事先用想用的作业控制命令写成一份作业操作说明书,连同作业一起提交给系统。当系统调度道该作业时,由系统中的命令解释程序对作业说明书中的命令或作业控制语句逐条解释执行。(雇主把工人要做的事情写在清单上,工人按照清单逐条命令完成这些事)  
  2. 程序接口,编程人员可以使用它们来请求操作系统服务。程序接口由一组系统调用命令(简称系统调用,也成广义指令)组成。用户通过在程序中使用这些系统调用命令来请求操作系统为其提供服务。用户在程序中可以直接使用这组系统调用命令想系统提出各种服务要求,如使用各种外部设备,操作磁盘文件,申请分配回收内存。(GUI是通过调用程序接口实现的,严格上GUI不属于OS的一部分,但图形接口所调用的系统调用命令,属于操作系统的一部分。)
五、操作系统可用作扩充机器。没有软件支持的计算机称为裸机,把覆盖了软件的机器称为扩充机器,又称为虚拟机。

六、多道程序设计地特点:多道、宏观上并行、微观上串行。

七、分时操作系统;在操作系统中采用分时技术就形成了分时操作系统。把处理器的运行时间分成很短的时间片,按时间片轮转把处理器分配给各联机作业使用。若某个作业在分配给他的时间段内不能完成计算,则该作业暂时停止运行,把处理器让给其他作业使用,等待下一轮在继续运行。作业运行轮转很快,每个用户都感觉自己是独占一台计算机。


八、操作系统在具体实现上划分了用户态(目态)和管态(用户态)。内核是计算机上配置的底层软件。大多数操作系统内核包括四个方面的内容。

  1. 时钟管理。通过时钟中断的管理,可以实现进程的切换。
  2. 中断机制。初衷是提高多道程序运行环境中cpu的利用率,且主要针对外部设备。中断机制中,只有一小部分功能属于内核,负责保护和恢复终端现场的信息,转移控制权到相关的处理程序。
  3. 原语。原语是OS底层一些可悲调用的公用小程序。其在操作系统最底层,最接近硬件,有原子性,操作不可再分,运行时间较短,调用频繁。定义原语的直接方法是关闭中断,让他的所有动作不可分割的进行完再打开中断。
九、系统控制的数据结构及处理。这类的数据结构有:作业控制块、进程控制块(PCB)、设备控制块、各类链表、消息队列、缓冲区、空闲区登记表、内存分配表等。为了实现有效的管理,常见的操作有三种:
  1. 进程管理进程状态管理、进程调度和分派、创建与撤销进程控制块等。
  2. 存储器管理:存储器空间的分配和回收、内存信息保护程序、代码对换程序等。
  3. 设备管理:缓冲区管理、设备分配和回收等。
和心态指令实际上包括了系统调用指令和一些针对时钟、中断和原语的操作指令。

十、操作系统内核工作在cpu的核心态,用户程序工作在用户态。系统不允许用户程序工作在核心态。在中断或异常发生时,运行用户态的cpu会立即进入核心态,这是通过硬件实现的(如用一个寄存器表示cpu工作状态,0为核心态,1为用户态。若要进入核心态,只需将该位置为0即可)。                                                                                                                                                                                                                                                                                                                    

十一、中断也称外中断。指来自cpu执行指令意外的事件的发生,如设备发出的I/O结束中断,表示设备输入输出处理已完成,希望处理机能向设备发出下一个输入/输出请求,同时让完成输入/输出后的程序继续运行。时钟中断,表示一个固定的时间片已到,让处理机处理计时、启动定时运行的任务等。这一类终端通常是与当前程序运行无关的事件。

十二、异常也成内中断、例外或陷入(trap),值源自cpu执行指令内部的事件,如程序的非法操作码、地址越界、算术溢出、虚存系统的缺页以及专门的陷入指令等引起的事件。对异常的处理一般要依赖当前程序的运行现场,而且异常不能被屏蔽,一旦出现应立即处理。

十三、系统调用。所谓系统调用就是用户在程序中调用操作系统所提供的一些子功能,系统调用可以被看做特殊的公共子程序。在用户程序中,凡是与资源有关的操作(如存储分配、进行I/O传输以及管理文件等,都必须通过系统调用方式向操作系统提出户服务请求,并由操作系统代为完成。)这些系统调用大致可分为以下几类:
  • 设备控制。
  • 文件管理
  • 进程控制
  • 进程通信
  • 内存管理
十四、用户态和内核态可通过中断来切换。


以下是一些由用户态转向核心态的例子。

  • 用户程序要求操作系统的服务,即系统调用。
  • 发生一次中断
  • 用户程序中产生了一个错误状态
  • 用户程序中企图执行一条特权指令
  • 由核心态转向和用户态由一条指令实现,这条指令也是特权指令。一般是中断返回指令
ps:由用户态进入核心态,不仅仅是状态需要切换。而且,所使用的堆栈也可能需要由用户堆栈切换为系统堆栈,但这个系统堆栈也是属于该进程的。

如果程序的运行由用户态转到核心态,会用到访管指令,访管指令实在用户态使用的,所以他不可能是特权指令。

十五、只有在内核态下能使用特权指令,在用户态下只能使用非特权指令,如果在用户态使用特权指令,会产生一个中断以阻止用户使用特权指令。
从用户态到核心态的唯一转换途径是中断或异常。
十六、访管指令和访管中断。访管指令本身并不是特权指令。如果用户程序向要完成在用户态下无法完成的工作,就可以使用访管指令使得程序拥有“自愿进管”,从而引起访管中断。
0 0
原创粉丝点击