操作系统 学习笔记1

来源:互联网 发布:淘宝店铺水印制作教程 编辑:程序博客网 时间:2024/06/15 21:03

11月将操作系统的基本知识整理与总结,争取每周一篇。

一:操作系统概述

1.1 概念

    操作系统是指控制和管理整个计算机系统的硬件和软件资源,并合理的组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境集合。计算机操作系统是随着计算机研究和应用的发展逐步形成并发展起来的,它是计算机系统中最基本的系统软件。

1.2 特征

    操作系统的基本特征包括并发、共享、虚拟和异步。其中并发与共享是最基本的特征。这两者之间又是互为存在条件的:1.资源共享是以程序的并发为条件的,若系统不允许程序并发执行,则自然不存在资源共享的问题;2.若系统不能对资源共享实施有效地管理,也必将影响到程序的并发执行,甚至根本无法并发执行。

    并发是指两个或多个事件在同一时间间隔内发生。操作系统的并发是通过分时得以实现的。操作系统的并发性是指计算机系统中同时存在多个运行着的程序,因此它具有处理和调度多个程序同时执行的能力。在操作系统中,引入进程的目的实施程序能并发执行。

    共享即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。互斥共享(打印机),用时访问(磁盘设备)。

    虚拟是指把一个物理上的实体变为若干个逻辑上(虚)的对应物。虚拟处理器与虚拟存储器。

    异步即不确定性。使得操作系统运行在一种随机的环境下,可能导致进程产生于时间有关的错误。但是只要运行环境相同,操作系统必须保证多次运行进程,都获得相同的结果。

1.3 功能

    作为计算机系统资源的管理者。进程管理,存储管理,文件管理,设备管理。

    作为用户与计算机硬件系统之间的接口。一类是命令接口,用户利用这些操作命令来组织和控制作业的执行;另一类是程序接口,由一组系统调用(由操作系统提供给应用程序)命令组成。(操作系统不允许用户之间使用硬件资源,用户程序只能通过系统调用的方式来请求内核为其服务。)

    系统调用:用户在程序中调用操作系统所提供的一些子功能,系统调用可以被看成特殊的公共子程序。运行在系统的核心态。通过系统调用的方式来使用系统功能,可以保证系统的稳定性与安全性。防止用户随意更改或者访问系统的数据或者命令。


二:操作系统的发展

    手工操作批处理阶段(解决人机矛盾,cpu与I/0设备之间速度不匹配的矛盾),多道批处理系统(宏观上并行,微观上串行。资源利用率高,使cpu处于忙碌状态,缺少人机交互),分时操作系统(分成很短的时间片,轮流把处理器分配给各联机作业使用。多个用户共享一台主机,是人机交互的系统),实时操作系统(在规定时间内处理外部事件,及时性与可靠性)。


三:操作系统的运行环境

3.1 运行机制

    CPU执行两种不同性质的程序,一种是操作系统内核程序;另一种是用户自编程序或系统外城的应用程序。对操作系统而言,这两种程序的作用不同,前者是后者的管理者和控制者,因此“管理程序”要执行一些特权指令,而“被管理程序”出于安全性考虑,不能执行这些指令。所谓特权指令是指计算集中不允许用户直接使用的指令,如IO指令、置中断指令。在具体上划分了用户态核心态

    内核是计算机上配置的最底层软件,操作系统内核包括四个方面的内容。1.时钟管理(在计算机外部设备中,时钟是最关键的设备。时钟向用户提供标准的系统时间。通过时钟中断的管理,可以实现进程的切换。)2.中断机制(成为操作系统各项操作的基础。例如键盘或鼠标信息的输入、进程的管理和调度、系统功能的调用、设备驱动、文件访问等,无不依赖于中断机制。可以说,现代计算机系统是靠中断驱动的软件。)3.原语(系统中的设备驱动、CPU切换、进程通信等功能中的部分操作都可以定义为原语,定义原语直接的方法是关闭中断,让它所有的动作不可分割地进行完再打开中断)4.系统控制的数据结构及处理

(核心态指令实际上包括系统调用类指令和一些针对时钟、中断和原语的操作指令。)

3.2中断与异常

    操作系统内核工作在核心态,而用户程序工作在用户态。系统不允许用户程序实现核心态的功能,而它们又必须使用这些功能。当中断或者异常发生时,运行用户态的cpu通过硬件实现会立即进入核心态。

    中断也成为外中断指来自CPU执行指令以外的事件发生,如设备发出的IO结束中断,表示设备输入输出处理已经完成,希望处理器能够像设备发出下一个输入输出请求,同时让完成输入输出后的程序继续进行。时钟中断,表示一个固定的事件片已到,让处理器处理计时、启动定时运行的任务。这一类中断通常是与当前运行的程序无关。

    异常也成为内中断指源自CPU执行指令内部的时间,如程序的非法操作码、地址越界、算数一出、虚存系统的缺页以及专门的陷入指令等引起的时间。对异常的处理一般要依赖与当前程序的运行现场,而且异常不能被屏蔽,一旦出现异常立即处理。

    这样,操作系统的运行环境可以理解为:用户通过操作系统运行上层程序,而这个上层程序的运行以来与操作系统的底层管理程序提供服务支持,当需要管理程序服务时,系统则通过硬件中断机制进入核心态,运行管理程序;另外也可能是程序运行出现异常情况,被动的需要管理程序的服务,这是就通过异常处理来进入核心态。当管理程序运行结束时,用户程序要继续进行,则通过相应保存程序现场推出中断处理程序或异常处理程序,返回断点处继续执行。

一些由用户态转向核心态的例子:

1)用户程序要求操作系统的服务,即系统服务。

2)发生一次中断

3)用户程序中产生了一个错误状态

4)用户程序中企图执行一条特权指令

5)从核心态转向用户态由一条指令实现,这条指令也是特权指令。一般情况是中断返回指令。

由用户态进入核心态,不仅仅是状态需要切换,而且,所使用的堆栈也可能需要由用户堆栈切换为系统堆栈,但这个系统堆栈也是属于该进程的。


一些小问题:

1.中断与异常的区别

  中断是指CPU对系统发生的某个事件作出的一种反应:CPU暂停正在执行的程序,保留现场后自动地转去执行相应的处理程序,处理完该事件后再返回断点继续执行被“打断”的程序。引起中断的事件称为中断源,中断源向CPU提出进行处理的请求称为中断请求。

    1.中断是属于正常现象。异常:是由于软件错误而引起的。

    2.中断。由CPU以外的事件引起的中断,如I/O中断、时钟中断、控制台中断等。异常。来自CPU的内部事件或程序执行中的事件引起的过程。如

由于CPU本身故障、程序故障和请求系统服务的指令引起的中断等。

2.并行性与并发性的区别和联系

   并行性和并发性是既相似又有区别的两个概念。并行性是指两个或多个事件在同一时刻发生,并发性是指两个或多个事件在同一时间间隔内发生。

3.特权指令的工作机制

   特权指令是指有特殊权限的指令,由于这类指令的权限最大,如果使用不当,就会导致系统崩溃。为了保证系统安全,这类指令只能用于操作系统或其他系统软件,不直接提供给用户使用,主要用于系统资源的分配和管理,包括改变系统的工作方式,检测用户的访问权限,修改虚拟存储器管理的段表、页表和修改用户的访问权限等。为了统一管理各种外部设备,输入输出指令也作为特权指令,不允许用户直接使用。需要输入输出操作时,必须通过系统调用,经由操作系统完成。实际上,CPU在核心态的下可以执行指令系统的全集。

    为了防止用户系统中使用特权指令,用户态下只能使用除特权指令以外的指令,核心态下可以使用全部指令。所以把用户程序放在用户态下进行,而操作系统中必须使用特权指令的那部分程序在核心态下运行,保证了计算机系统的安全可靠。从用户态转换为核心态的唯一途径就是终端或异常

0 0