操作系统学习笔记_01_OS概念简述


  1. 操作系统的概念

    操作系统没有公认的定义,本文只对它的几个侧面进行尽量详尽的描述。操作系统是一组控制程序的集合,相当于计算机系统的内核(区分于系统程序和应用程序)。操作系统在开机后保持运行,其工作环境介于硬件和用户之间,基于硬件资源为用户提供服务。

    具体而言,计算机系统可以粗分硬件系统、操作系统、软件系统。部分学者认为用户也应该属于计算机系统的一部分:用户在使用计算机时通过各种应用程序对计算机提出应用需求,因此可以认为软件系统中的用户接口是用户在计算机系统中的代表。在实际工作中,用户通过应用程序来使用计算机,并期望相应的结果。操作系统实时与用户交互,充分理解用户指令的含义,并利用现有资源进行操作,对用户需求进行满足。为了执行接收到的指令,操作系统需要支配和利用硬件的资源。因此,操作系统也需要即时和硬件系统打交道。在实际应用中,操作系统通常被设计为数据、硬件资源和软件资源的管理者。后者提供了基本的计算资源,供操作系统支配,进行运算。在进程执行完毕后,操作系统通过与I/O设备的接口将结果返回给用户。总的来说,操作系统是用户在计算机内部利用硬件获得服务的中介。

     

  2. 操作系统的设计目标

    如前文所述,操作系统旨在为用户提供服务。然而,在不同工作环境下,操作系统的用户是不同的。这意味着不同工作环境下的操作系统具有不同的定位:个人计算机拥有者希望操作系统操作方便、帮助工作、且界面美观;服务器通常期望一个较高的资源利用率数值,对操作系统的要求是能尽量利用全部的资源;而空间压缩、电池续航等基本要求通常是移动设备的操作系统需要首要考虑的问题。在不同的硬件和功能要求下,操作系统要采取不同的设计。可以根据操作系统的适用领域将前者划分为通用型系统和专用型系统。通用型系统是我们讨论的重点,这种操作系统通常适用于一类设备,并且和同类型的操作系统具有相似的功能。对于专用型系统,其功能因硬件资源而极度受限,只能处理单一计算领域,如嵌入式系统、多媒体系统、手持系统等。

     

  3. 操作系统的功能与服务

    虽然操作系统所对应的硬件多种多样,工作重心各不相同,但仍然存在共性。作为系统资源的管理者,操作系统需要承担进程管理、内存管理和存储管理的任务。同时,为了方便用户使用操作系统,后者需要为用户提供接口。

    进程管理的主要内容是控制和分配进程对资源的使用。只要用户或系统指令指定一个任务,操作系统就创建一个进程存储这个任务。按进程中的程序指令执行完毕,就完成了对用户的服务,此时进程被系统删除。然而,任何一个进程的执行都伴随着对计算机资源的一定要求。在当今普遍的多进程并行的计算机环境中,操作系统需要提供调度。另外,操作系统必须保证资源不被长时间占用。当异常进程长时间占用资源时,系统需要提供死锁处理机制将其移除。进程管理的活动一般还包括进程同步、进程通信等。

    内存管理的主要内容是把握内存的使用状态和管理内存空间。计算机系统的操作都在内存中进行(CPU只能直接访问内存,而非外存),例如进程在被执行时必须装入内存,数据在进行计算时必须载入内存,而计算结果在输出之前也必须从内存中读取到输出设备(运算器只能从内存中读取数据,最后的计算结果也直接存放在内存中)。因此,操作系统必须时刻监控内存各个单元的使用情况,并根据需要分配和释放内存空间。另外,在多个进程并行执行时,操作系统需要决定哪些进程先装入内存执行,以保证内存有较高的使用率。内存和其他设备的交互非常频繁,所以内存空间必须由操作系统统一调度。

    存储管理包含对文件系统、I/O设备和存储器(外存)的管理。因为计算机系统的数据等信息都以文件形式存储,所以操作系统内部一般设计专门的文件系统进行管理。文件系统通常包括由文件夹、文件、已分配空间和自由空间构成的层级结构,提供存储空间管理、目录管理、文件管理和权限控制等服务。对于I/O设备,操作系统通常设计通用的用户接口来方便用户使用类型各异的I/O设备,有的操作系统还会专门设计I/O子系统作为前者的一部分。针对I/O设备,操作系统提供的服务包括等级和管理状态、分配和优化设备等。外部存储器也是计算机硬件的一部分,所以操作系统相关设计的目的还是方便用户使用外存。例如,数据和指令在通常情况下存储在硬盘中,所以操作系统需要实现对硬盘空闲空间的管理和对硬盘存储空间的分配。一般地,外存等存储设备的访问速度和其存储量呈反相关趋势,所以操作系统具有针对各级存储设备的层级结构,将不同的内容存储于不同的区域。高速缓存设计也基于相同的理念管理内存空间,其将一部分调用频率高的指令和调用模式固定的指令存储在寄存器中,以帮助计算机避免一些重复访问内存操作,节省运行时间。另外,同样的数据或对象在不同情况下可能出现在不同层次的存储系统上。

    操作系统的接口分为命令接口和程序级接口两类。其中,前者主要针对设备,而后者提供一系列系统调用供其他程序调用。对于系统调用,后文还有更加详尽的解释。

    此外,为了保证计算机系统正常执行功能,防止不正常操作产生影响,操作系统需要提供保护和安全机制。保护是指一种控制进程或用户访问资源的机制,其作用是防止资源被恶意篡改或错误删除。操作系统通常指定所有执行的操作序列,以防止不可靠的操作。防止系统受到攻击是安全的责任,其中攻击可能来自外部或内部进程。绝大多数操作系统有用户ID的设置,不同的ID具有不同的权限等级,以权衡计算机的安全性和可用性。

     

  4. 操作系统的结构与操作

    通用的操作系统都需要实现上文所述的功能。针对这层目的,遵从定式化的流程和操作是操作系统设计的共识。

    在组织结构上,现代操作系统营造了多道程序设计的环境。通常来说,现代的操作系统允许内存中同时保留多个程序进程,CPU在这些进程之间来回切换,以使使用效率最大化。对于其他设备也是如此,在一段时间内可能执行多个作业的指令。多道程序系统提供了系统资源充分使用的环境,而分时系统(多任务)是多道程序设计的延伸。在分时系统中,宏观上的一段时间内有多个任务在同时进行。用户可以通过输入设备和系统或程序进行交互,获得即时响应————这是因为CPU切换作业的频率很高,在用户进行输入时,CPU可以暂时切换到接受输入的任务上,待停止输入后再随时切换到别的任务。进一步的,系统也可以在多个用户之间切换,达成用户之间的共享。在资源充裕、优化良好时,每个用户都感觉“有一台独立的计算机来处理每个进程”,但实际上这是多个程序并发执行的结果。从程序的角度看,系统执行每个进程都是时断时续的,不等执行完毕就切换到其他任务。

    在实际工作中,操作系统由中断驱动。开机并装入操作系统之后,CPU处于空闲状态,准备接受各种渠道的中断。一旦接受中断,CPU会通过中断服务程序转到任务的位置,开始执行,执行结束返回空闲状态。具体而言,硬件和软件都可以触发中断,前者可以直接向CPU发送信号,而后者通过执行系统调用来产生中断。然而,软件中断可能存在陷阱(违反模式的错误)。针对此,许多操作系统采取双重模式来保护系统和用户的正确程序。硬件在开始处于内核模式,装入操作系统后进入用户模式。当遇到特权指令(有可能造成计算机损害的指令)时,硬件将进入内核模式,让操作系统接管计算机,保证特权指令不能引起损害。在用户模式下不能执行特权指令,如果试图执行则被视为陷阱。

    程序在运行时被操作系统处理,而前者接入后者的接口就是系统调用。系统调用之于操作系统就相当于函数调用之于应用程序,因为他们都起到了接口的作用。系统调用相当于操作系统服务的函数原型,发挥最基本的功能。因为它们的形式原始而繁琐,所以移植性较差,且不利于编程。程序员通常利用开发好的库函数进行编程,在程序中只使用函数调用,使得程序的平台移植性更强。

参考文献:

[1] AbrahamSilberschatz. 操作系统概念:Java实现:7:翻译版. 高等教育出版社, 2010.1;

[2] AbrahamSilberschatz. Operating System Concepts Essentials: 2nd ed. WileyOnline Library;

[3] 季江民. 操作系统考研辅导. 清华大学出版社,2010.10.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值