操作系统的目标
- 有效性:提高系统资源利用率**,提高系统吞吐量
- 方便性:能够大大方便用户
- 可扩充性:能方便增加和删除硬件
- 开放性:能遵循世界标准规范
操作系统种类
- 单道批处理系统: 一次只调用一个程序进入内存运行
- 多道批处理系统:内从驻留多道程序
- 分时操作系统:用户能与自己的作业进行交互
- 实时操作系统:计算机能实时地获取信息进行实时控制
- 进程和程序的区别
① 进程是动态的,程序是静止的。进程是程序的执行,程序是有序代码的集合。 ② 进程是暂时的,程序是永久的。进程是一个状态变化的过程,程序可以长久保存。 ③ 进程和程序的组成不同:进程包括程序,数据和进程控制块。 ④ 进程和程序是密切相关的。通过多次执行,一个程序可以对应多个进程;通过调度关系,一个进程可 以包括多个程序。 ⑤ 进程可以创建其他进程,但是程序不能形成新的程序。
- 进程和线程的区别
① 调度:线程是独立调度的基本单位,进程是资源拥有的基本单位**。在同一进程中,线程的切换不会引 起进程切换。在不同进程中进行线程切换,将会引起进程切换。 ② 拥有资源:进程是拥有资源的基本单位,而线程不拥有系统资源(除了少量资源,比如栈,程序计数 器,寄存器),不过线程可以访问其隶属进程的系统资源。 ③ 并发性:在引入线程的操作系统中,不仅进程之间可以并发执行,而且同一个进程内的多个线程之间 也可以并发执行,能提高系统的吞吐量,系统的并发性也更好。 ④ 系统开销:在创建进程和撤销进程时,系统都要为之分配或回收资源,所以操作系统为进程付出的系 统开销远大于创建线程或撤销线程的开销。 ⑤ 同步和通信:多线程之间的同步和通信容易实现。
- 什么是微内核?
微内核操作系统能有效地支持多处理机运行,非常适用于分布式系统环境。 什么是微内核操作系统到现在没有一致公认的定义,但是可以从四个方面对微内核操作系统进行描述: ① 足够小的内核:在微内核操作系统中,内核是指精心设计的,能实现现代OS最基本核心功能的部分, 并非是一个完整的OS,而只是OS中最基本的部分。 ② 基于C/S模式:将操作系统中最基本的部分放入内核中,而把操作系统的绝大部分功能都放于微内核 外面的一组服务器中实现。 ③ 应用“极致与策略分离”原理:在传统 OS 中,讲极致放在OS 的内核的较低层,把策略放在内核的 较高层中。而在微内核OS中,通常把机制放在OS的微内核中,这样才有可能将内核做得很小。 ④ 采用面向对象技术。
内核基本功能:
① 进程(线程)管理 ② 低级存储器管理 ③ 中断和陷入处理
优点:
① 提高了系统的可扩展性 ② 增强系统的可靠性 ③ 可移植性 ④ 提供了对分布式系统的支持 ⑤ 融入了面向对象技术
B/S架构
B/S架构即浏览器和服务器架构模式。它是随着Internet技术的兴起,对C/S架构的一种变化或者改进的架构。
B/S架构即浏览器和服务器架构模式。它是随着Internet技术的兴起,对C/S架构的一种变化或者改进的架构。
在这种架构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓三层3-tier结构。
B/S架构是WEB兴起后的一种网络架构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。
客户机上只要安装一个浏览器,如Netscape Navigator或Internet Explorer,服务器安装Oracle、Sybase、Informix或 SQL Server等数据库。
浏览器通过Web Server同数据库进行数据交互。 这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本。
随着Internet和WWW的流行,C/S无法满足当前的全球网络开放、互连、信息随处可见和信息共享的新要求,于是就出现了B/S型模式,即浏览器/服务器结构。它是C/S架构的一种改进,可以说属于三层C/S架构。
C/S结构和B/S结构区别为:硬件环境不同、客户端软件不同、用户接口不同。
一、硬件环境不同
1、C/S结构:C/S结构建立在局域网的基础上,局域网之间再通过专门服务器提供连接和数据交换服务。
2、B/S结构:B/S结构建立在广域网之上,不必配备专门的网络硬件环境。
二、客户端软件不同
1、C/S结构:C/S结构中的每一个客户机都必须安装和配置相关软件,如操作系统、客户端软件等。
2、B/S结构:B/S结构中每一个客户端只需通过浏览器便可进行各种信息的处理,而不需要安装客户端软件。
三、用户接口不同
1、C/S结构:C/S结构是建立在Windows平台上,表现方法有限。
2、B/S结构:B/S结构是建立在浏览器上,有更加丰富和生动的表现方式。
什么是操作系统?
操作系统(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运 行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。操作系统是用 户和计算机的接口,同时也是计算机硬件和其他软件的接口。操作系统的功能包括管理计算机系统的硬件、 软件及数据资源,控制程序运行,改善人机界面,为其它应用软件提供支持等,使计算机系统所有资源最 大限度地发挥作用,提供了各种形式的用户界面使用户有一个好的工作环境,为其它软件的开发提供必 要的服务和相应的接口。
作业和进程的区别
一个进程是一个程序对某个数据集的执行过程,是分配资源的基本单位。作业是用户需要计算机完成的某 项任务,是要求计算机所做工作的集合。一个作业的完成要经过作业提交、作业收容、作业执行和作业完 成4 个阶段。而进程是对已提交完毕的程序所执行过程的描述,是资源分配的基本单位。 其主要区别如下。
(1)作业是用户向计算机提交任务的任务实体。在用户向计算机提交作业后,系统将它放入外存中的作业等 待队列中等待执行。而进程则是完成用户任务的执行实体,是向系统申请分配资源的基本单位。任一进程, 只要它被创建,总有相应的部分存在于内存中。
(2) 一个作业可由多个进程组成,且必须至少由一个进程组成,反过来则不成立。
(3) 作业的概念主要用在批处理系统中,像UNIX 这样的分时系统中就没有作业的概念。而进程的概念则 用在几乎所有的多道程序系统中进程是操作系统进行资源分配的单位。在Windows 下,进程又被细化为线 程,也就是一个进程下有多个能独立运行的更小的单位。
进程调度算法有哪些?
① 先来先服务调度FCFS
② 短作业优先调度SJF
③ 优先级调度Priority
④ 时间片轮转调度RR
⑤ 高响应比优先调度
⑥ 多级队列调度
⑦ 多级反馈队列调度
死锁
死锁: 是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作 用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称 为死锁进程。
死锁原因:
① 系统资源不足 ② 进程推进顺序不当
产生死锁的必要条件
① 互斥条件:指进程对所分配到的资源进行排它性使用,即在一段时间内某资源只由一个进程占用。② 请求和保持条件:指进程已经保持至少一个资源,但又提出了新的资源请求,而该资源已被其它进程 占有,此时请求进程阻塞,但又对自己已获得的其它资源保持不放。 ③ 不剥夺条件:指进程已获得的资源,在未使用完之前,不能被剥夺,只能在使用完时由自己释放。 ④ 环路等待条件:指在发生死锁时,必然存在一个进程——资源的环形链,即进程集合{P0,P1,P2,···, Pn}中的 P0 正在等待一个 P1 占用的资源;P1 正在等待 P2 占用的资源,……,Pn 正在等待已被 P0占用的资源。
处理死锁的基本方法:
① 预防死锁:这是一种较简单和直观的事先预防的方法。方法是通过设置某些限制条件,去破坏产生死 锁的四个必要条件中的一个或者几个,来预防发生死锁。预防死锁是一种较易实现的方法,已被广泛 使用。但是由于所施加的限制条件往往太严格,可能会导致系统资源利用率和系统吞吐量降低。 ② 避免死锁:该方法同样是属于事先预防的策略,但它并不须事先采取各种限制措施去破坏产生死锁的 的四个必要条件,而是在资源的动态分配过程中,用某种方法去防止系统进入不安全状态,从而避免 发生死锁。 ③ 检测死锁:这种方法并不须事先采取任何限制性措施,也不必检查系统是否已经进入不安全区,此方 法允许系统在运行过程中发生死锁。但可通过系统所设置的检测机构,及时地检测出死锁的发生,并 精确地确定与死锁有关的进程和资源,然后采取适当措施,从系统中将已发生的死锁清除掉。 ④ 解除死锁:这是与检测死锁相配套的一种措施。当检测到系统中已发生死锁时,须将进程从死锁状态 中解脱出来。常用的实施方法是撤销或挂起一些进程,
以便回收一些资源,再将这些资源分配给已处 于阻塞状态的进程,使之转为就绪状态,以继续运行。
什么是饥饿?与死锁有什么差别?
等待时间给进程推进和响应带来明显影响时成为进程饥饿。 饥饿并不代表系统一点死锁,但至少有一个程序的执行被无限期地推迟。 差别: ① 进入饥饿的进程可以只有一个,但是死锁必须大于等于两个; ② 出于饥饿状态的进程可以是一个就绪进程,但是死锁状态的进程必定是阻塞进程。
银行家算法
主要思想是避免系统进入不安全状态,在每次进行资源分配时,它首先检查系统是否有足够的资源满足要 求,如果有,则先试行分配,并对分配后的新状态进行安全性检查。如果新状态安全,则正式分配上述资 源,否则拒绝分配上述资源。这样就保证系统始终处于安全状态,从而避免死锁现象的发生。