第一章 操作系统引论

操作系统原理

Principles of Operating System


前言

专业基础课:修内功,考研等等要用到。


一、操作系统的目标和作用?

  • 操作系统的目标
    目前存在着多种类型的OS,不同类型的OS,其目标各有所侧重。
    (1) 提高系统资源利用率。在未配置OS的计算机系统中,诸如CPU、I/O设备等各种资源,都会因它们经常处于空闲状态而得不到充分利用;内存及外存中所存放的数据太少或者无序而浪费了大量的存储空间。配置了OS之后,可使CPU和I/O设备由于能保持忙碌状态而得到有效的利用,且可使内存和外存中存放的数据因有序而节省了存储空间。
    (2) 提高系统的吞吐量。操作系统还可以通过合理地组织计算机的工作流程,而进一步改善资源的利用率,加速程序的运行,缩短程序的运行周期,从而提高系统的吞吐量。
    通常在计算机硬件上配置的OS,其目标有以下几点:
  • 方便性:若无OS,一般用户就无法使用。
  • 有效性:充分利用系统资源,提高系统吞吐量
  • 可扩充性:增/减模块、软件、硬件
  • 开放性:标准化、可移植、互操作
  • 操作系统的作用
    1.人机交互的接口:
    OS处于用户与计算机硬件系统之间,用户通过OS来使用计算机系统。或者说,用户在OS帮助下,能够方便、快捷、安全、可靠地操纵计算机硬件和运行自己的程序。
    在这里插入图片描述
    几种接口方式:
    (1)操作接口:命令方式,图形、窗口方式
    (2)编程接口:系统调用方式
    2.系统资源的管理者
    在计算机系统中,通常都含四类资源:处理器(CPU)、存储器(Memory内存)、 I/O设备以及信息(文件:数据和程序)。
    OS的主要功能就是对这四类资源施行有效的管理:
  • 处理机管理: 用于分配和控制处理机;
  • 存储器管理:主要负责内存的分配与回收;
  • I/O设备管理:负责I/O设备的分配与操纵;
  • 文件管理:负责文件的存取、共享和保护。
    可见,OS确是计算机系统资源的管理者。事实上,这也是当今世界上广为流行的一个关于OS作用的观点。
    3.对计算机资源的抽象
    I/O软件隐藏了I/O操作实现的细节
    对于一台完全无软件的计算机系统(即裸机),即使其功能再强,也是难于使用的。
    通常把覆盖了软件的机器称为扩充机器或虚机器。
  • 如果在裸机上覆盖上一层I/O设备管理软件,就提供了一组抽象设备。用户便可利用它所提供的I/O命令,来进行数据输入和打印输出。从而隐藏了I/O设备操作的具体细节。
  • 如果又在第一层软件上再覆盖上一层文件管理软件,则用户可利用该软件提供的文件存取命令,来进行文件的存取。用户所看到的是台功能更强的虚机器。
  • 如果又在文件管理软件上再覆盖一层面向用户的窗口软件,则用户便可在窗口环境下方便地使用计算机,形成一台功能更强的虚机器。

二、操作系统的定义

  • 操作系统是一组控制和管理计算机硬件和软件资源,合理对各类作业进行调度,以方便用户使用的程序的集合。
  • 操作系统是计算机系统中的一个系统软件,它是这样一些程序模块的集合——它们管理和控制计算机系统中的硬件及软件资源,合理地组织计算机工作流程,以便有效地利用这些资源为用户提供一个功能强大、使用方便和可扩展的工作环境,从而在计算机与用户之间起到接口的作用。

三、 操作系统的基本特性

并发(Concurrence)

并发性是指两个或多个事件在同一时间间隔内发生。
在多道程序环境下,并发性是指在一段时间内,宏观上有多个程序在同时运行,但在单处理机系统中,每一时刻却仅能有一道程序执行,故微观上是分时地交替执行。
1.并行与并发

  • 并行性和并发性是既相似又有区别的两个概念
  • 并发性是指两个或多个事件在同一时间间隔内发生。
  • 并行性是指两个或多个事件在同一时刻发生。
  • 单处理器也能实现并发, 但不能并行。 若有多个处理机,可将并发执行的程序被分配到多个处理机上,实现并行执行。
    2.引入进程
  • 程序是一个静态实体,表现为存放在磁盘的程序文件,在多道程序环境中不能被直接执行,更不能并发执行。
  • 必须引进一个实体能唯一地标识一个程序的一次执行过程。
  • 这个实体就是进程(process)。它是程序在系统中能独立执行并作为资源分配的基本单位,是一个被操作系统独立调度的基本单位。由机器指令、数据、堆栈和控制等部分组成。
    3.引入线程
  • 现代操作系统中,进程通常可以包含多个线程。
  • 一个线程是进程内的一个更小的可以独立执行的单位,它们几乎不拥有自己的资源,而共同拥有进程资源,因此调度起来更加灵活,系统开销更小。
  • 线程是现代操作系统的一个重要标志。

共享(Sharing)

在操作系统环境下,所谓共享是指系统中的资源可供内存中多个并发执行的进程(线程)共同使用。这种资源共享也叫资源复用。
由于资源属性的不同,进程对资源共享的方式也不同,目前主要有以下两种资源共享方式:
1. 互斥共享方式

  • 某些资源,如打印机、磁带机,虽然它们可以提供给多个进程(线程)使用,但为使所打印或记录的结果不致造成混淆,应规定在一段时间内只允许一个进程(线程)访问该资源。

  • 把这种资源共享方式称为互斥式共享。而把在一段时间内只允许一个进程访问的资源称为临界资源或独占资源。

  • 计算机系统中的大多数物理设备,以及某些软件中所用的栈、变量和表格,都属于临界资源,它们要求被互斥地共享。
    2. 同时访问方式

  • 系统中还有另一类资源,允许在一段时间内由多个进程“同时”对它们进行访问。(这里所谓的“同时”往往是宏观上的,而在微观上,这些进程可能是交替地对该资源进行访问)。

  • 典型的可供多个进程“同时”访问的资源有:磁盘设备,一些用重入码编写的程序。

虚拟(Virtual)

  • 所谓“虚拟”,是指通过某种技术把一个物理实体变为若干个逻辑上的对应物。即把物理的一个,变为逻辑上的多个。

  • 用于实现虚拟的技术,称为虚拟技术。

  • 在OS中利用了多种虚拟技术,分别用来实现虚拟处理机、虚拟内存、 虚拟外部设备和虚拟信道等。

异步性(Asynchronism)

  • 在多道程序环境下,允许多个进程并发执行, 但只有进程在获得所需的资源后方能执行。

  • 在单处理机环境下,由于系统中只有一个处理机,因而每次只允许一个进程执行,其余进程只能等待。

  • 可见,由于资源等因素的限制,进程的执行通常都不是“一气呵成”,而是以“停停走走”的方式运行。

  • 宏观上并行,微观上串行。

四、操作系统的主要功能

  • 处理机管理功能(CPU)
  • 存储器管理功能(内存)
  • 设备管理功能(I/O设备)
  • 文件管理功能(信息管理)
  • 用户接口(命令/图形/系统调用)

处理机管理功能(CPU)

处理机管理的任务就是要决定由哪个进程(线程)占有处理机并获得执行权的问题,以及为什么占有处理机和怎样占有处理机的问题。因此处理机管理包括:
1.进程控制

  • 在传统的多道程序环境下,要使作业运行,必须先为它创建一个或几个进程,并为之分配必要的资源。当进程运行结束时,立即撤消该进程,以便能及时回收其所占用的各类资源。

  • 进程控制的主要功能是为作业创建进程、撤消已结束的进程,以及控制进程在运行过程中的状态转换。

  • 在现代OS中,进程控制还应具有为一个进程创建/撤消(终止)若干个线程的功能。

2.进程同步

  • 为使多个进程能有条不紊地运行,系统中必须设置进程同步机制。主要任务是为多个进程(含线程)的运行进行协调。有两种协调方式:
    ①进程互斥方式:指诸进程(线程)在对临界资源进行访问时, 应采用互斥方式;
    ②进程同步方式:指在相互合作去完成共同任务的诸进程(线程)间,由同步机构对它们的执行次序加以协调。

  • 为了实现进程同步,系统中必须设置进程同步机制。
    最简单的用于实现进程互斥的机制,是为每一个临界资源配置一把锁,当锁打开时,进程(线程)可以对该临界资源进行访问;而当锁上锁时,则禁止进程(线程)访问该临界资源。
    3.进程通信

  • 在多道程序环境下,为了加速应用程序的运行,应在系统中建立有多个进程,并且再为一个进程建立若干个线程,由这些进程(线程)相互合作去完成一个共同的任务。而在进程(线程)之间,又往往需要交换信息,即进程通信。

  • 如,有三个相互合作的进程:输入、计算和打印进程。

4.进程调度
1.在传统OS中,包括作业调度和进程调度两步。

  • 作业调度。是从后备队列中按照一定的算法,选择出若干个作业,为它们分配其必需的资源。
    在将它们调入内存后,便分别为它们建立进程,使它们都成为可能获得处理机的就绪进程,并按照一定的算法将它们插入就绪队列。
  • 进程调度。是按照某种算法从进程的就绪队列中选出一进程,把处理机分配给它,并为它设置运行现场, 使进程投入执行。

2.在现代OS中,还要进行线程调度。

存储器管理功能(内存)

1. 内存分配
内存分配的主要任务是:
(1)为每道程序分配内存空间,使它们"各得其所"。
(2)提高存储器的利用率,尽量减少不可用的内存空间(碎片)。
(3)允许正在运行的程序申请附加的内存空间,以适应程序和数据动态增长的需要。
2. 内存保护

  • 内存保护的主要任务是:
    (1)是确保每道用户程序都只在自己的内存空间内运行,彼此互不干扰。
    (2)绝不允许用户程序直接访问OS的程序及数据,也不允许用户程序转移到非共享的其它用户程序中去。
  • 为此,必须设置内存保护机制。
    一种比较简单的内存保护机制,是设置两个界限寄存器,分别用于存放正在执行程序的上界和下界。系统须对每条指令所要访问的地址进行检查,如果发生越界,便发出越界中断请求,以停止该程序的执行。

3. 地址映射

  • 在多道程序环境下,程序的开始地址一般都是从“0”开始的,程序中的其它地址都是相对于起始地址计算的;
    由这些地址所形成的地址范围称为“地址空间”,其中的地址称为“逻辑地址”或“相对地址”。

  • 但在装入时,程序不可能都从“0”地址开始。

  • 为使程序能正确运行,存储器管理必须提供地址映射功能,以将地址空间中的逻辑地址转换为内存空间中与之对应的物理地址。该功能应在硬件的支持下完成。

4. 内存扩充

  • 内存扩充,并非是去扩大物理内存,而是借助于虚拟存储技术,从逻辑上去扩充内存容量,使用户所感觉到的内存容量比实际内存容量大得多;或者是让更多的用户程序能并发运行。

  • 为了能在逻辑上扩充内存,系统必须具有内存扩充机制,用于实现下述各功能:
    (1) 请求调入(On Demond):部分装入、请求调入
    (2) 置换/交换(Swap):内存不足时,先腾出空间,再装入

设备管理功能(I/O设备)

  • 设备管理是管理系统中所有的外围设备。主要任务是:
    (1)方便用户使用I/O设备。
    (2)完成用户进程提出的I/O请求,为用户进程分配其所需的I/O设备,并完成指定I/O操作。
    (3)提高CPU和I/O设备的利用率,提高I/O速度。

  • 为实现上述任务,设备管理应具有缓冲管理、设备分配和设备处理,以及虚拟设备等功能。

文件管理功能(信息管理)

  • 文件管理的功能是使用户方便使用系统中的文件,使之按名存取,召之即来。还要提供共享与保护措施,根据用户身份,分配和控制使用权限。
  • 具体表现为目录和文件创建、修改、复制、粘贴、移动和删除等。
  • 文件管理功能具体表现在文件存储空间的管理、 目录管理和文件的读/写管理和保护等。

用户接口(命令/图形/系统调用)

1. 操作接口
(1)联机用户接口(命令接口):由一组键盘操作命令及命令解释程序所组成。
(2)脱机用户接口:是为批处理作业的用户提供的,故也称为批处理用户接口。
(3)图形接口:通过鼠标或触摸屏提供的图形界面。
2. 程序接口

  • 程序接口是为编程人员提供的,也叫做编程接口或开发接口。该接口是用户程序在执行中访问系统资源或取得OS服务的唯一途径。
  • 程序接口由一组系统调用组成,每一个系统调用都是一个能完成特定功能的(系统)子程序,每当应用程序要求OS提供某种服务时,便调用具有相应功能的系统调用。

五、操作系统的结构设计

软件工程的基本概念

1. 软件的含义
所谓软件,是指当计算机运行时,能提供所要求的功能和性能的指令和程序的集合,该程序能够正确地处理信息的数据结构;作为规范软件,还应具有描述程序功能需求以及程序如何操作使用的文档。
2. 软件工程的含义
是指运用系统的、规范的和可定量的方法,来开发、运行和维护软件;或者说,是采用工程的概念、原理、技术和方法,来开发与维护软件,其目的是为了解决在软件开发中所出现的编程随意性、软件质量不可保证以及维护困难等问题。

传统的操作系统结构

  • 操作系统是一个十分复杂的大型软件。为了控制该软件的复杂性,在开发OS时,先后引入了分解、模块化 、抽象和隐蔽等方法。开发方法的不断发展,促进了OS结构的更新换代。
  • 把第一代~第三代的OS结构, 称为传统的OS结构,而把微内核的OS结构称为现代OS结构。
    1.模块化OS结构
    为使OS具有较清晰的结构,OS不再是由众多的过程直接构成,而是将OS按其功能划分为若干个具有一定独立性和大小的模块。每个模块具有某方面的管理功能,并规定好各模块间的接口标准, 使各模块之间能通过该接口实现交互。然后再进一步将各模块细分为若干个具有一定管理功能的子模块,同样也要规定各子模块之间的接口。若子模块较大时,再进一步将它细分。如图 1-6 所示。
    1—6
    2.分层式OS结构
    有序分层的基本概念:
  • 从改进设计方式上说,应使我们的每一步设计都是建立在可靠的基础上。
  • 我们可以从物理机器开始, 在其上面先添加一层具有一定功能的软件A1,
    由于A1是建立在完全确定的物理机器上的,在经过精心设计和几乎是穷尽无遗的测试后,可以认为A1是正确的;然后再在A1上添加一层新软件A2,……,如此一层一层地自底向上增添软件层,每一层都实现若干功能,最后总能构成一个能满足需要的OS。
    分层式结构设计的基本原则:
  • 每一层都仅使用其底层所提供的功能和服务,这样可使系统的调试和验证都变得容易。
  • 例如,在调试第一层软件A1时,由于它只使用了物理机器提供的功能,因此它将与其所有的高层软件A2,…,An无关;同样在调试A2时,它也只使用了A1和物理机器所提供的功能,而与其高层软件A3,
    …,An无关,这样,一旦发现Ai出现错误时,通常该错误只会局限于Ai,因为它与所有其高层的软件无关,而Ai层以下的各层软件,又都经过仔细的调试。
    在这里插入图片描述

C/S模式

1.C/S模式OS

  • 为了提高灵活性和可扩充性,在C/S模式OS被 划分为两部分:
    一部分是用于提供各种服务的一组服务器(进程)。另一部分是内核,用来处理客户和服务器之间的通信,
    即由内核来接收客户的请求,再将该请求送至相应的服务器;同时它也接收服务器的应答,并将此应答回送给请求客户。
  • 此外,在内核中还应具有其它一些机构,用于实现与硬件紧密相关的和一些较基本的功能。
    2. 一次完整的交互,可分为以下4步:
    (1)客户机发送请求消息
    (2)服务器接收消息,并提供服务
    (3)服务器返回消息
    (4)客户机接收返回消息
    3. 客户/服务器模式的优点
  • 优点
    (1)数据的分布处理和存储
    (2)便于集中管理
    (3)灵活性和可扩展性
    (4)易于改写应用软件
  • 缺点
    (1)存在着不可靠性和瓶颈问题。
    (2)在仅有一个服务器时,一旦服务器瘫痪,将造成整个网络/系统瘫痪。
    (3)当服务器负载过重时,造成对客户服务时间的延长。

微内核OS结构

1.基本概念
为提高OS的“正确性”、“灵活性”、“易维护性”和“可扩展性”,20世纪80年代末产生了微内核(Micro Kernel)技术。当前流行的操作系统几乎全部采用了微内核技术。

  • 微内核是指精心设计的,小而精,不仅运行在核心态,而且开机后常驻内存。
  • 并非是一个完整的OS, 而只是为构建通用OS提供一个重要基础。
  • 在微内核OS结构中,通常都采用C/S模式,OS的大部分功能和服务都是由若干服务器来提供。
    2.在微内核OS中所用技术
  • 足够小的内核
  • 客户/服务器模式
  • 应用“机制与策略分离”(实施机构与功能目标相分离)
  • 面向对象的程序设计技术
    3.微内核的基本功能
    1)进程/线程管理
    2)低级存储器管理
    3)中断和陷入管理
    4)进程通信管理
    5)I/O设备管理
    4. 微内核操作系统的优点
    1)提高了系统的可扩展性
    2)增强了系统的可靠性
    3)可移植性
    4)提供对分布式系统的支持
    5)融入了面向对象技术

总结

引入多道程序设计技术带来的好处:
(1)提高CPU的利用率。
当内存中仅有一道程序时,每逢该程序在运行中发出I/O请求后,CPU会因等待设备而空闲。
(2)提高内存和I/O设备利用率。
如果允许在内存中装入多道程序, 并允许它们并发执行,会大大提高内存和I/O设备的利用率。
(3)增加系统吞吐量。
在保持CPU、I/O设备不断忙碌的同时,也必然会大幅度地提高系统的单位时间内的作业处理能力—吞吐量。
多道批处理系统的特征:
(1)多道性。
(2)无序性。
(3)调度性。作业调度,进程调度。
(4)宏观上并行,微观上串行。
多道批处理系统的优缺点
(1)资源利用率高。 (优点)
(2)系统吞吐量大。 (优点)
(3)平均周转时间长。 (缺点)
(4)无交互能力。 (缺点)
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。
现代操作系统的功能

  1. 系统安全
    认证技术;加密技术;访问控制(用户权限控制、操作权限控制);反病毒
  2. 网络和服务功能
    网络通讯;网络资源管理;互操作
  3. 多媒体支持
    实时调度;接纳控制(媒体服务器、存储器、进程);多媒体文件的存储。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值