一、操作系统概述

知识框架

1.1 操作系统的基本概念

1.1.1操作系统

操作系统是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境的程序集合。

1.1.2操作系统的特征

1、并发
操作系统的并发性是指计算机系统中同时存在多个运行着的程序,因此它具有处理和调度多个程序同时执行的能力。在操作系统中引入进程的目的是使程序能并发执行。
同一时间间隔(并发)&同一时刻(并行):一段时间内,宏观上有多道程序在同时执行,而在每一时刻,单处理机环境下实际仅能有一道程序执行,故微观上这些程序还是在分时地交替执行。**操作系统的并发性是通过分时得以实现的。**并行性是指系统具有可以同时进行运算或操作的特性,在同一时刻完成两种或两种以上的工作,并行性需要相关硬件的支持,如多流水线或多处理机硬件环境
2、共享
资源共享即共享,是指系统中的资源可供内存中多个并发执行的进程共同使用,共享可分为以下两种资源共享方式:
1)互斥共享方式
当进程A访问某资源时,必须先提出请求,如果此时该资源空闲,系统便可以将之分配给进程A,此后若再有其他进程也要访问该资源时(只要A未用完)则必须等待。仅当进程A访问完并释放该资源后,才允许另一进程对该资源进行访问。我们把这种资源共享方式称为互斥共享,而把在一段时间内只允许一个进程访问的资源称为临界资源或独占资源。计算机系统中的大多说物理设备,以及某些软件中所用的栈、变量和表格,都属于临界资源,它们都要求被互斥地共享。
2)同时访问方式
系统中还有另一类资源,允许在一段时间内由多个进程“同时”对它们进行访问。这里的“同时”往往是宏观上的,而在微观上,这些进程可能是交替地对该资源进行访问即“分时共享”。
互斥共享,是因为一种资源在一段时间内(哪怕是一段很小的时间)只能满足一个请求,否则就会出现严重的问题。而同时访问的共享,通常要求,一个请求分几个时间片段间隔地完成的效果,与连续完成的效果相同。
3、虚拟
操作系统中利用了多种虚拟技术,分别用来实现虚拟处理器、虚拟内存和虚拟外部设备等。
虚拟处理器技术:通过多道程序设计技术,让多道程序并发执行的方法,来分时使用一个处理器的,把一个物理上的CPU虚拟为多个逻辑上的CPU。
虚拟存储器技术:将一台机器的物理存储器变为虚拟存储器,以便从逻辑上来扩充存储器的容量。操作系统的虚拟技术可以归纳为:时分服用技术,如处理器的分是共享;空分复用技术,如虚拟存储器。
4、异步
在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行并不是一贯到底,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性(不确定性)。异步性使得操作系统运行在一种随机的环境下,可能导致进程产生与时间有关的错误(就像对全局变量的访问顺序不当会导致程序出错一样)。但是只要运行环境相同,操作系统必须保证多次运行进程,都获得相同的结果。

1.1.3 操作系统的目标和能力

功能:处理机管理、存储器管理、设备管理和文件管理。
为了方便用户使用操作系统,还必须向用户提供接口,同时操作系统可以用来扩充机器,以提供更方便的服务、更高的资源利用率。
1、操作系统作为计算机系统资源的管理者
1)处理机管理
在多道程序环境下,处理机的分配和运行都以进程(或线程)为基本单位,因而对处理机的管理可归结为对进程的管理。并发时在计算机内同时运行多个进程,所以,进程何时创建、何时撤销、如何管理、如何避免冲突、合理共享就是进程管理的最主要任务。进程管理的主要功能有:进程控制、进程同步、进程通信、死锁处理、处理机调度等
2)存储器管理
为了给多道程序的运行提供良好的环境,主要包括:内存分配、地址映射、内存保护与共享和内存扩充等
3)文件管理
包括:文件存储空间的管理、目录管理及文件读写管理和保护等
4)设备管理
包括:缓冲管理、设备分配、设备处理和虚拟设备等功能
2、操作系统作为用户与计算机硬件系统之间的接口
操作系统提供的接口主要分为两类:命令接口,用户利用这些操作命令来组织和控制作业的执行;程序接口,编程人员可以使用它们来请求操作系统服务。
1)命令接口
可分为两种:联机命令接口和脱机命令接口。
联机命令接口:交互式命令接口,适用于分时或实时系统的接口。由一组键盘操作命令组成。
脱机命令接口:批处理命令接口,适用于批处理系统。由一组作业控制命令组成。
2)程序接口
由一组系统调用命令(系统调用、广义指令)组成。最为流行的就是图形用户界面(GUI)即图形接口。
3、操作系统用做扩充机器
通常把覆盖了软件的机器称为扩充机器,又称之为虚拟机。

**Q:**说明库函数与系统调用的区别和联系
库函数是语言或应用程序的一部分,可以运行在用户空间中。而系统调用是操作系统的一部分,是内核提供给用户的程序接口,运行在内核空间中,而且许多库函数都会使用系统调用来实现功能。没有使用系统调用的库函数,执行效率通常比系统调用高。因为使用系统调用时,需要上下文的切换以及状态的转换(从用户态转向核心态)。

1.2 操作系统的发展和分类

1.2.1 手工操作阶段(此阶段无操作系统)

两个突出缺点:用户独占全机,资源利用率低。CPU等待手工操作,CPU的利用不充分。

1.2.2 批处理阶段(操作系统开始出现)

按照发展历程又分为单道批处理系统、多道批处理系统。

  • 单道批处理系统:自动性、顺序性、单道性;
    系统对作业的处理是成批进行的,但内存中始终保持一道作业。该系统是在解决人机矛盾和CPU与I/O设备速率不匹配的矛盾中形成的。
    面临的问题:每次主机内存中仅存放一道作业,每当它运行期间发出输入/输出请求后,高速的CPU便处于等待低速的I/O完成状态,为了进一步提高资源利用率和系统吞吐量,引入了多道程序技术。
  • 多道批处理系统:多道、宏观上并行、微观上串行。
    多道批处理程序允许多个程序同时进入内存并运行,共享系统中的各种硬、软件资源。当一道程序因I/O请求而暂停运行时,CPU便立即转去运行另一道程序。它没有用某些机制提高某一技术方面的怕瓶颈问题,而是让系统的各个组成部分都尽量去“忙”。
    面临的问题:如何分配处理器;多道程序的内存分配问题;I/O设备如何分配;如何组织和存放大量的程序和数据,以便于用户使用和保证其安全性与一致性。
1.2.3 分时操作系统

分时技术:把处理器的运行时间分成很短的时间片,按时间片轮流把处理器分配给各联机作业使用。若某个作业在分配给它的时间片内不能完成其计算,则该作业暂时停止运行,把处理器让给其他作业使用,等待下一轮再继续运行。由于计算机速度很快,作业运行轮转得很快,给每个用户的感觉好像是自己独占一台计算机。
分时操作系统是多个用户通过终端同时共享一台主机,这些终端连接在主机上,用户可以同时与主机进行交互操作而互不干扰。所以实现分时系统最关键的问题是:如何使用户能与自己的作业进行交互,即当用户在自己的终端上键入命令时,系统应能及时接收并及时处理该命令,再将结果返回用户
分时系统也是支持躲到程序设计的系统,但他不同于多道批处理系统。多道批处理系统是实现作业自动控制而无需人工干预的系统,而分时系统是实现人机交互的系统。
分时操作系统:同时性、交互性、独立性、及时性。

1.2.4 实时操作系统

硬实时系统:某个动作必须绝对地在规定的时刻(或规定的时间范围)发生,如飞行器的自动控制系统;
软实时系统:如果能够接受偶尔违反时间规定,并且不会引起任何永久性的损害,则称为软实时系统,如飞机订票系统,银行管理系统;
实时操作系统的主要特点是及时性和可靠性

1.2.5 网络操作系统和分布式计算机系统

网络操作系统最主要的特点是网络中各种资源的共享以及各台计算机之间的通信。
分布式计算机系统是由堕胎计算机组成并满足下列条件的系统:系统中任意两台计算机通过听信方式交换系统;系统中的每一台计算机都具有同等的地位,即没有主机也没有从机;每台计算机上的资源为所有用户共享;系统中的任意若干台计算机都可以构成一个子系统,并且还能重构;任何工作都可以分布在几台计算机上,由它们并行工作、协同完成。
分布式计算机系统最主要的特点是分布性和并行性。
分布式操作系统与网络操作系统的本质上的不同之处在于分布式操作系统中,若干台计算机相互协同完成同一任务

1.2.6 个人计算机操作系统

1.3 操作系统的运行环境

1.2.1 操作系统的运行机制

计算机系统中,通常CPU执行两种不同性质的程序,操作系统内核程序&用户自编程程序或系统外层的应用程序。前者是后者的管理者,因此管理程序要执行一些特权指令,而被管理程序处于安全考虑不能执行这些指令。
特权指令(计算机中不允许用户直接使用的指令):I/O指令、置中断指令、存取用于内存保护的寄存器、送程序状态字到程序状态字寄存器等指令。
操作系统在具体实现上划分了用户态(目态)和核心态(管态),以严格区分两类程序。
操作系统的各个功能分别被设置在不同的层次上,一些与硬件关联比较紧密的模块,诸如时钟管理、中断处理、设备驱动等处于最底层。其次是运行频率较高的程序,诸如进程管理、存储管理和设备管理等。这两部分内容构成了操作系统的内核,这部分内容的指令操作工作在核心态。
大多数操作系统内核包括四个方面的内容
1、时钟管理
时钟的第一功能是计时,操作系统需要通过时钟管理,向用户提供标准的系统时间;
通过时钟中断的管理,可以实现进程的切换,例如在分时操作系统中,采用时间片轮转调度的实现;
在实时系统中,按截止时间控制运行的实现;
在批处理系统中,通过时钟管理来衡量一个作业的运行程度等。
2、中断机制
引入中断技术的初衷是提高多道程序运行环境中CPU的利用率,而且主要是针对外部设备的。
键盘或鼠标信息的输入、进程的管理和调度、系统功能的调用、设备驱动、文件访问等,无不依赖于终端机制。
中断机制中,只有一小部分功能属于内核,负责保护和恢复中断现场
3、原语
按层次结构设计的操作系统,底层必然是一些可被调用的公用小程序,它们各自完成一个规定的操作系统。其特点是:
1)它们处于操作系统的最底层,是最接近硬件的部分;
2)这些程序的运行具有原子性——其操作只能一气呵成(这主要是从系统的安全性和便于管理考虑的);
3)这些程序的运行时间都比较短,而且调用繁琐。
具有这些特点的程序称为原语。定义原语的直接方法是关闭中断,让它的所有动作不可分割地进行完再打开中断。
系统中的设备驱动、CPU切换、进程通信等功能中的部分操作都可以定义为原语,使它们成为内核的组成部分。
4、系统控制的数据结构及处理
系统中用来登记状态信息的数据结构很多,比如作业控制块、进程控制块(PCB)、设备控制块、各类链表、消息队列、缓冲区、空闲区登记表、内存分配表等。为了实现有效的管理,系统需要一些基本的操作,常见的操作有以下三种:
1)进程管理:进程状态管理、进程调度和分派、创建与撤销进程控制块等;
2)存储器管理:存储器的空间分配和回收、内存信息保护程序、代码对换程序等;
3)设备管理:缓冲区管理、设备分配和回收等。
核心态指令实际上包括系统调用类指令和一些针对时钟、中断和原语的操作指令。

1.3.2 中断和异常的概念

操作系统内核工作在核心态,而用户程序工作在用户态。但系统不允许用户程序实现核心态的功能,而它们又必须使用这些功能。因此,需要在核心态建立一些“门”,实现从用户态进入核心态。在实际操作系统上,CPU运行上层程序时唯一能进入这些门的途径就是通过中断或异常。当中断或异常发生时,运行用户态的CPU会立即进入核心态,这是通过硬件实现的(例如,当一个特殊寄存器的一位来表示CPU所处于的工作状态,0表示核心态,1表示用户态。若要进入核心态,只需要将该位置0即可)。
操作系统的发展过程,大体上就是一个想方设法不断提高资源利用率的过程,而提高资源利用率就需要在程序并未使用某种资源的时候,把它对那种资源的占有权释放,而这个行为,就需要通过中断实现。
中断,也称为外中断,指来自CPU执行指令以外的事件的发生,如设备发出的I/O结束中断,表示设备输入/输出处理已经完成,希望处理机能够向设备发下一个输入/输出请求,同时让完成输入/输出后的程序继续运行。
时钟中断,表示一个固定的时间片已到,让处理机处理计时、启动定时运行的任务等。(这一类中断通常是与当前程序运行无关的事件,即它们与当前处理机运行的程序无关)
异常,也称内中断,例外或陷入,指源自CPU执行指令内部的事件,如程序的非法操作码、地址越界、算术溢出、虚存系统的缺页以及专门的陷入指令等引起的事件。对异常的处理一般要依赖于当前程序的运行现场,而且异常不能被屏蔽,一旦出现应立即处理。

1.3.3 系统调用

系统调用就是用户在程序中调用操作系统所提供的一些子功能,系统调用可以被看做特殊的公共子程序。系统调用按功能大致可分为如下几类:
设备管理。完成设备的请求或释放,以及设备启动等功能。
文件管理。完成文件的读、写、创建及删除等功能。
进程控制。完成进程的创建、撤销、阻塞及唤醒等功能。
进程通信。完成进程之间的消息传递或信号传递等功能。
内存管理。完成内存的分配、回收以及获取作业占用内存区大小及始址等功能。
系统调用运行在系统的核心态
这样,操作系统的运行环境可以理解为:用户通过操作系统运行上层程序(如系统提供的命令解释程序或用户自编程序),而这个上层程序的运行依赖于操作系统的底层管理程序提供服务支持,当需要管理程序服务时,系统则通过硬件中断机制进入核心态,运行管理程序;也可能是程序运行出现异常情况,被动地需要管理程序的服务,这时就通过异常处理来进入核心态。
一些由用户态转向核心态的例子:
1)用户程序要求操作系统的服务,即系统调用;
2)发生一次中断;
3)用户程序中产生了一个错误状态;
4)用户程序中企图执行一条特权指令;
5)从核心态转向用户态由一条指令实现,这条指令也是特权命令。一般是中断返回指令。
由用户态进入核心态,不仅仅是状态需要切换,而且所使用的堆栈也可能需要由用户堆栈切换为系统堆栈,但这个系统堆栈也是属于该进程的。
如果程序的运行由用户态转到核心态,会用到访管指令,访管指令是在用户态使用的,所以它不可能是特权指令。

1.4 操作系统的体系结构

1.4.1 大内核和微内核

大内核系统将操作系统的主要功能模块都作为一个紧密联系的整体运行在核心态,从而为应用提供高性能的系统服务。
微内核系统将内核中最基本的功能(如进程管理等)保留在内核,而将那些不需要在核心态执行的功能移动到用户态执行,从而降低了内核的设计复杂性。而将那些移出内核的操作系统代码根据分层的原则被划分成若干服务程序,它们的执行相互独立,交互则都借助于微内核进行通信。
微内核最大的问题是性能问题,因为需要频繁地在核心态和用户态之间进行切换,操作系统的执行开销偏大。
为减少切换开销,也有人提出将系统服务作为运行库链接到用户程序的一种解决方案,这种体系结构称为库操作系统。
微内核结构的特点:添加系统服务时,不必修改内核;使系统更可靠。

一些疑难点

1、并发性(同一时刻)和并行性(同一时间间隔
2、特权指令与非特权指令
用户态下只能使用非特权指令,核心态下可以使用全部指令。从用户态切换为核心态的唯一途径是中断或异常
3、访管指令与访管中断
访管指令是一条可以在用户态下执行的指令。
访管中断是因要求操作系统提供服务而有意识地使用访管指令,从而产生一个中断事件(自愿中断),将操作系统转换为核心态,称为访管中断。
访管中断由访管指令产生,程序员使用访管指令向操作系统请求服务。访管指令本身不是特权指令,其基本功能是让程序拥有“自愿进管”的手段,从而引起访管中断。

考察知识点

1、批处理的主要缺点是缺少交互性
2、中断处理是操作系统必须提供的功能,因为计算机的各种错误都需要中断处理,核心态和用户态的切换也需要中断处理;
2、用户程序在用户态下要使用特权指令引起的中断属于访管中断
4、在操作系统的各个功能组成部分中,进程调度可不需要硬件的支持;
5、计算机从核心态到用户态的转换是由操作系统程序执行之后完成的,而用户态到核心态的转换则是由硬件完成的;
6、当CPU执行操作系统代码时,处理器处于核心态

操作系统(一)——操作系统概述相关推荐

  1. 操作系统原理 —— 操作系统概述

    目录 1.操作系统概述 1.1 操作系统做了什么? 1.1.1 操作系统做了什么?(1/4) 1.1.2 操作系统做了什么?(2/4) 1.1.3 操作系统做了什么?(3/4) 1.1.4 操作系统做 ...

  2. 《操作系统 》 操作系统概述 (一)

    声明: 本文章主要根据个人上课及个人日常学习的笔记. 一.操作系统的概念 1.1.1 计算机系统 计算机系统主要包含硬件和软件 硬件:是构成计算机系统所必须配置的各种设备.(看得见,摸得着) 软件:是 ...

  3. 操作系统学习笔记 第一章:操作系统概述(王道考研)

    本文章基于 2019 王道考研 操作系统 考试复习推荐资料:操作系统复习总结 - 百度文库 (baidu.com) 需要相关电子书的可以关注我的公众号BaretH后台回复操作系统 后续章节陆续推出- ...

  4. 操作系统学习1:操作系统概述

    操作系统概述 什么是操作系统? 操作系统(Operating System,简称OS)是一个系统软件,它管理计算机的软硬件资源,并为计算机程序提供服务. 操作系统的五大功能 文件管理 文件管理包括:存 ...

  5. 操作系统之计算机系统概述:1、操作系统概述(定义、功能、作用)

    1.操作系统概述 思维导图: 计算机系统的层次结构: 操作系统的定义: 操作系统的功能和目标: 1.系统资源的管理: 2.向上层提供方便易用的服务: 3.对硬件机器的扩展: 思维导图: 计算机系统的层 ...

  6. 清华大学MOOC《操作系统》第1讲:“操作系统概述”总结(转)

    课程内容概述 这一讲对课程内容和操作系统做了一个概括性的介绍,主要包括以下几块内容: 教学安排 什么是操作系统 操作系统的演变 操作系统结构的分类 教学安排 本课程将讲述的内容包括: 操作系统结构 中 ...

  7. [操作系统精髓与设计原理笔记] Chapter2 操作系统概述

    Chapter2 操作系统概述 2.1 操作系统的目标和功能 2.1.1 作为用户/计算机接口的操作系统 操作系统是应用程序和计算机硬件间的接口,三个目标:方便.有效.扩展能力 计算机软硬件结构 ​ ...

  8. 关于客户机服务器与微内核结构操作系统,第1章 操作系统概述1

    <第1章 操作系统概述1>由会员分享,可在线阅读,更多相关<第1章 操作系统概述1(41页珍藏版)>请在人人文库网上搜索. 1.操作系统概述 苏锐丹 操作系统概述 n操作系统的 ...

  9. linux 写操作系统 pdf,Linux操作系统概述.pdf

    Liux操作系统 一.概述 教材和参考资料 • E-Learning上将提供课程ppt以及部分文字资料 • L命令行与脚本编程大全 (第3版),R B,C B著, 门佳 .武海峰译, 人民邮电出版社 ...

  10. 操作系统原理——(1)引言:计算机系统和操作系统概述

    目录 计算机系统概述 计算机系统的基本组成 处理寄存器和指令执行 中断 存储器 I/O访问方式 操作系统概述 操作系统的概念及功能 操作系统的发展 衡量操作系统的指标 操作系统的结构 现代操作系统的基 ...

最新文章

  1. MFC-使用自定义控件的方法
  2. 黑马程序员_java基础笔记(15)...银行业务调度系统_编码思路及代码
  3. adf开发_ADF BC:创建绑定到业务组件的UI表
  4. 第十一届蓝桥杯青少组Python竞赛真题
  5. [vscode] c++ debugging
  6. 3.支付平台架构:业务、规划、设计与实现 --- 支付后端技术实战
  7. gradle mysql方言_基于Spring Boot技术栈的博客系统企业级实战教程分享
  8. SDRAM控制器仿真
  9. VMware虚拟机安装与使用
  10. oracle双活数据中心建设_双活数据中心 是什么
  11. jupyter保存py格式
  12. 一个ios开发者使用Android手机后的一些感想
  13. 广州大学 数据结构实验报告
  14. 目标检测(四):SSD之Pytorch源码解读
  15. 携一抹恬淡,美丽人生
  16. 【深度学习】大牛的《深度学习》笔记,Deep Learning速成教程
  17. Java动态执行代码字符串
  18. python计时器程序_Python计时器程序示例
  19. Yslow安装使用, 网站性能工具Yslow
  20. 如何从另一个PPT中提取母版(WPS)

热门文章

  1. 最新 955 互联网公司白名单来了!
  2. 第0课 课前必读(未完成)
  3. Python绘图:使用Basemap绘制全球地形图
  4. Vue计算属性、监视属性
  5. Java基础:数据类型与变量
  6. VS2010出现“为帮助内容存储区指定的位置无效或者您无权访问该位置”的解决办法
  7. SAP FICO - Functional Area/ Financial Management Area(FM Area)
  8. 预防XSS——后端HttpUtility.HtmlEncode,AntiXssEncoder.HtmlEncode方法;前端htmlencode,htmldecode,JavaScriptEncode
  9. mail = imaplib.IMAP4_SSL('k20gslf-0kF')
  10. 最近我在忙什么之【毕业设计大纲】