目录
第一章:操作系统概述
操作系统概述:
操作系统的四个特征:
(1)并发:
(2)共享:
(3)虚拟:
(4)异步:
计算机操作系统的发展:
OS的运行机制和体系结构:
知识总览:
运行机制:
操作系统的内核:
中断和异常:
中断:
系统调用:
系统调用概述:
系统调用和库函数的区别:
第二章:系统进程
进程的定义:
进程的组织:
链接方式:
索引方式:
进程的特征:
总结:
进程的状态与转换:
进程的三种状态:
进程状态的转换:
总结:
进程控制:
进程控制相关的原语:
总结:
操作系统(operating system,简称OS)是管理计算机硬件与软件资源的计算机程序。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。
在计算机中,操作系统是其最基本也是最为重要的基础性系统软件。
从计算机用户的角度来说,计算机操作系统体现为其提供的各项服务。
从程序员的角度来说,其主要是指用户登录的界面或者接口。
从设计人员的角度来说,就是指各式各样模块和单元之间的联系。
事实上,全新操作系统的设计和改良的关键工作就是对体系结构的设计,经过几十年以来的发展,计算机操作系统已经由一开始的简单控制循环体发展成为较为复杂的分布式操作系统,再加上计算机用户需求的愈发多样化,计算机操作系统已经成为既复杂而又庞大的计算机软件系统之一。
进程是一个程序的执行过程。执行前需要将该程序加载到内存中,才能被CPU处理。
作为资源管理者提供了:处理机管理,存储器管理,文件管理,设备管理。
作为用户和计算机硬件之间的接口提供了:命令接口-联机和脱机命令接口,程序接口,(统称用户接口),GUI图形化界面。
联机命令接口 = 交互式命令接口
脱机命令接口 = 批处理命令接口
GUI:图形化用户界面(Graphcial User Interface),用户可以使用形象的图形界面进行操作,而不再使用记忆复杂的命令、参数。
总结:
其中,并发和共享,两个最基本的特征,二者互为相互存在的条件!!!
并发指两个或者多个事件同一时间间隔内发生。这些事件在宏观上是同时发生的,但在微观上是交替发生。
并行:指两个或者多个事件同一时刻同时发生。
一个单核处理机(CPU)同一时刻只能执行一个程序,因此操作系统会负责协调多个程序交替执行(这些程序围观上是交替执行的,但是在宏观上看起来就像同时执行)。事实上,操作系统就是伴随着"多道程序技术"而出现的。操作系统和程序并发是一起诞生的。
共享即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。
两种资源共享方式:
所谓的"同时"往往是指宏观上的,而为微观上,这些进程可能是交替地对该资源进行访问(即分时共享)。
并发和共享的关系:
虚拟是指把一个物理上都实体变成若干个逻辑上对应物。物理实体是真实存在的,而逻辑上的对应物是用户感受到的。
空分复用技术:
空分复用(SDM)技术是指利用空间的分割实现复用的一种方式,将多根光纤组合成束实现空分复用,或者在同一根光纤中实现空分复用。空分复用包括光纤复用和波面分割复用。光纤复用是指将多根光纤组合成束组成多个信道,相互独立传输信息。在光纤复用系统中,每根光纤只用于一个方向的信号传输,双向通信需要一对光纤,即所需的光纤数量加倍。光纤复用可以认为是最早的和最简单的光波复用方式。
在移动通信中,能实现空间分割的基本技术就是采用自适应阵列天线,在不同的用户方向上形成不同的波束。也叫做SDM。
如果把空间的分割来区别不同的用户,就叫做SDMA。每个波束可提供一个无其他用户干扰的唯一信道。也有其他叫法:MU-MIMO。
如果把空间的分割来区别同一个用户的不同数据,就叫做MIMO 空分复用。如果把空间的分割来区别同一个用户的相同数据,以求更高的增益,就叫做MIMO 发射分集。
时分复用技术:
微观上处理机在各个微小的时间段内交替着为各个进程服务。
时分复用(TDM,Time Division Multiplexing)就是将提供给整个信道传输信息的时间划分成若干时间片(简称时隙),并将这些时隙分配给每一个信号源使用,每一路信号在自己的时隙内独占信道进行数据传输。时分复用技术的特点是时隙事先规划分配好且固定不变,所以有时也叫同步时分复用。其优点是时隙分配固定,便于调节控制,适于数字信息的传输;缺点是当某信号源没有数据传输时,它所对应的信道会出现空闲,而其他繁忙的信道无法占用这个空闲的信道,因此会降低线路的利用率。时分复用技术与频分复用技术一样,有着非常广泛的应用,电话就是其中最经典的例子,此外时分复用技术在广电也同样取得了广泛地应用,如SDH,ATM,IP和HFC网络中CM与CMTS的通信都是利用了时分复用的技术。
虚拟技术:
所谓虚拟存储,就是把内存与外存有机的结合起来使用,从而得到一个容量很大的“内存”,这就称之为虚拟存储。 可以说,存储网络平台的综合性能的优劣,将直接影响到整个系统的正常运行。
虚拟处理器也被称为虚拟处理机,是指分配给虚拟机(VM)的物理的中央处理单元(CPU)。
默认情况下给每个虚拟机分配一个虚拟处理器。一旦物理主机有多个CPU内核可供支配,那么CPU调度器将分配执行上下文,这样虚拟处理器基本上变成了逻辑处理器上的一系列时间片。
因为处理时间计费,因此管理员有必要了解云服务提供商是如何将虚拟处理器的使用方法记载到发货清单上的。同样重要的是管理员要认识到增加更多的虚拟处理器不会自动提高性能。这是因为随着虚拟处理器的数量上升,调度器将难以协调物理CPU上的时间片,而且等待时间也会降低性能。
在虚拟机中,虚拟处理器是对称多处理结构(SMP)的多线程计算模型的一部分。对称多处理结构使线程可以跨越多个物理或逻辑内核以提高更多并行虚拟化任务的性能。虚拟处理器允许多重任务处理在多核环境中顺序执行。
如果,失去了并发性,则一个时间段内系统中只需要运行一道程序,那么就失去了是西安虚拟性的意义了,没有并发性就谈不上虚拟性!
异步是指,在多道程序环境下,允许多个程序并发执行,但由于资源有限。进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。
如果失去了并发性,则系统只能串行的处理各个进程,每个进程的执行会一贯到底。只有系统拥有并发性,才可能导致异步性。
什么是指令:
计算机指令就是指挥机器工作的指示和命令,程序就是一系列按一定顺序排列的指令,执行程序的过程就是计算机的工作过程。
计算机将我们书写的代码进行"翻译"(编译),成为机器语言指令,一条高级语言的代码翻译过来可能会对应多条指令。
简单来说,"指令"就是处理器(CPU)能识别、执行的最基本命令。
两种指令:
两种处理器状态:
用程序状态自寄存器(PSW)中的某标志来识别当前处理器处于什么状态。如0为用户态,1为和兴态。
两种程序:
内核是计算机上配置的底层软件,是操作系统最基本、最核心的部分。实现操作系统内核功的那些程序就是内核程序。
发生了中断,就意味着需要操作系统介入,开展管理工作。由操作系统的管理工具(例如进程切换、分配I/O设备等等)需要特权指令,因此CPU要从用户态转为核心态。中断可以使CPU从用户态切换为核心态,使操作系统获得计算机的控制权。有了中断,才能实现多道程序的并发执行。
中断分类:
外中断的处理过程:
系统调用是操作系统提供给应用程序(编程人员)使用的接口,可以理解为一种可提供服务应用程序调用的特殊函数,应用程序可以发出系统调用请求来获取操作系统的服务。
应用程序通过系统调用请求操作系统的服务。系统中的各种共享资源都是由操作系统统一管理,因此在用户程序中,凡是与资源有关的操作(内存分配、I/O操作、文件管理),都必须通过系统调用的方式向操作系统提出服务请求,由操作系统代为完成。这样可以保证系统的稳定性和安全性,防止用户进行非法操作。
系统 调用相关处理涉及到对系统资源的管理、对进程的控制,这些功能需要执行一些特权指令才能完成,因此系统调用的相关处理需要在核心态下进行!
系统调用过程:
程序:就是一个指令序列!
程序段、数据段、PCB三部分组成了进程实体(进程映像)。一般情况下,我们把进程实体就简称为进程。例如,所谓创建进程,实质上是创建进程实体中的PCB;而撤销进程,实质上是撤销进程实体中的PCB。注意:PCB是进程存在的唯一标志!
从不同的角度,进程可以有不同的定义,比较传统典型的定义有:
引用进程实体的概念后,可把进程定义为:
在一个系统中,通常有数十个,数百个乃至数千个PCB。为了能够有效的进行管理,应该用适当的方式把这些PCB组织起来。
进程的组成讨论的就是一个进程内部由哪些部分构成的问题,而进程的组织讨论的是多个进程之间的组织方式问题。
进程和程序是两个截然不同的概念相比于程序,进程拥有以下特征:
进程是程序的一次执行。在这个执行过程中,有时进程正在被CPU处理,有时有需要等待CPU服务,进程的状态是变化的。
进程的三种基本状态:
进程的另外两种状态:
进程控制的主要功能是对系统中所有进程实施有效的管理,它具有创建进程、实现进程、进程状态转换等功能。
进程控制就是要实现进程之间状态的转换!!!
用原语实现进程控制。原语的特点是执行期间不允许中断,这种不可被中断的操作即为原子操作。
原语采用"关中断指令"和"开中断指令"实现!
关/开中断指令的权限非常大,必然只允许在核心态下执行的特权指令!
什么是原语:
计算机进程的控制通常由原语完成。所谓原语,一般是指由若干条指令组成的程序段,用来实现某个特定功能,在执行过程中不可被中断。在操作系统中,某些被进程调用的操作,如队列操作、对信号量的操作、检查启动外设操作等,一旦开始执行,就不能被中断,否则就会出现操作错误,造成系统混乱。所以,这些操作都要用原语来实现 原语是操作系统核心(不是由进程,而是由一组程序模块组成)的一个组成部分,并且常驻内存,通常在管态下执行。原语一旦开始执行,就要连续执行完,不允许中断