这里是最求完美的博客呀!致力于制作最全面,最简洁的笔记(好像这俩不可并存),但是我偏要鱼和熊掌兼要。
如有错漏,敬请指出哇!
目录
一、操作系统的基本概念
1.1 冯·诺依曼模型与计算机系统
计算机硬件的基本组成如图1-1所示,通常也称为冯·诺依曼模型,该模型由5部分组成,其主机部分由运算器、存储器、控制器组成,外设部分由输入设备和输出设备组成。
没有配置软件的计算机称为裸机。裸机仅仅构成了计算机系统的硬件基础。而实际呈现在用户面前的计算机系统是经过若干层的软件改造之后的计算机,如图1-2所示。
- 计算机的硬件、软件以及软件的各部分之间是一种层次结构的关系。硬件在最底层,其上层是操作系统,通过操作系统提供的资源管理功能和方便用户使用的各种服务功能,将裸机改造成功能更强大、使用更方便的机器(通常称为虚拟机或扩展机)。而各种实用程序和应用程序在操作系统之上,这些程序均以操作系统为支撑,并向用户提供完成工作所需的各种服务。
- 操作系统是裸机上的第一层软件,是对硬件功能的首次扩充。引入操作系统的目的是:提供一个计算机用户与计算机硬件系统之间的接口,使计算机系统更易于使用;有效地控制和管理计算机系统中的各种硬件和软件资源,使之得到更有效的利用;合理地组织计算机系统的工作流程,以改善系统性能。
- 在计算机系统上配置操作系统,其主要目标是:方便性、有效性、可扩充性和开放性。
二、操作系统的特征
1、并发(Concurrence)
- 程序的并发执行能有效改善系统的资源利用率,但会使系统复杂化,因此操作系统必须具有控制和管理各种并发活动的能力。
扩展:并行性与并发性的区别和联系
- 并行性是指两个或多个事件在同一时刻发生。——同时做几件事
- 并发性是指两个或多个事件在同一时间间隔内发生。——每次只做一件事
- 本质:资源的数量不同。并行的资源多,可以人手一个。并发的资源少,只能一个一个用。
- 在多道程序环境下,并发性是指在一段时间内,宏观上有多个程序同时运行,但在单处理器系统中每个时刻却仅能有一道程序执行,因此微观上这些程序只能分时地交替执行。若在计算机系统中有多个处理器,则这些可以并发执行的程序便被分配到多个处理器上,实现并行执行,即利用每个处理器来处理一个可并发执行的程序。
2、共享(Sharing)
- 资源共享即共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。指系统中的硬件和软件资源不再为某个程序所独占,而是供多个用户共同使用。
- 共享可分为以下两种资源共享方式。
(1)互斥共享方式
系统中可供共享的某些资源,如打印机、某些变量、队列等一段时间内只能供一个作业使用的资源,只有当前作业使用完毕并释放后,才能被其他作业使用。我们把这种资源共享方式称为互斥式共享,而把在一段时间内只允许一个进程访问的资源称为临界资源。
计算机系统中的大多数物理设备及某些软件中所用的栈、变量和表格,都属于临界资源,它们都要求被互斥地共享。
(2)同时访问方式
系统中的另一类资源,如磁盘、可重入代码等,可以供多个作业同时访问。虽然这种“同时”是指宏观上的“同时”,微观上可能是作业交替访问该资源,但作业访问资源的顺序不会影响访问的结果。切片注意:互斥共享要求一种资源在一段时间内(哪怕是一段很小的时间)只能满足一个请求,否则就会出现严重的问题,(你能想象打印机第一行打印A文档的内容、第二行打印B文档的内容的效果吗?) 而同时访问共享通常要求一个请求分几个时间片段间隔地完成,其效果与连续完成的效果相同。
- 并发和共享是操作系统的两个最基本的特征,二者之间互为存在条件。
(1)资源的共享是以程序的并发执行为条件的,若系统不允许程序的并发执行,自然不存在资源的共享问题。
(2)若系统不能对资源共享实施有效的管理,也必将影响程序的并发执行,甚至根本无法并发执行。
3、虚拟(Virtual)
- 在操作系统中,虚拟是指把一个物理上的实体变为若干个逻辑上的对应物,前者是实际存在的,后者是虚拟的,这只是用户的一种感觉。
- 例如,在操作系统中引入多道程序设计技术后,虽然只有一个CPU,每次只能执行一道程序,但通过分时使用,在一段时间间隔内,宏观上这台处理器能同时运行多道程序。它给用户的感觉是每道程序都有一个CPU为其服务,即多道程序设计技术可以把一台物理上的CPU虚拟为多台逻辑上的CPU。
- 此外还有虚拟存储器(从逻辑上扩充存储器的容量)、虚拟设备(独占设备变为共享设备)等技术,在后续章节会详细介绍。
4、异步(Asynchronism)
- 在多道程序环境(一个人同时做多件事,一次只能做一件事)中,由于资源等因素的限制,程序是以“走走停停”的方式运行的。系统中的每道程序何时执行、多道程序间的执行顺序以及完成每道程序所需的时间都是不确定的,因而也是不可预知的。
- 同步:多个人共同完成一件事