第一章 操作系统引论--笔记

本系列博文是西安电子科技大学出版社出版的《计算机操作系统》(第三版)汤小丹 梁红兵 哲凤屏 汤子瀛 一书的读书笔记

特此注明为读书笔记,若有侵权,敬请通知本人



1.1操作系统的目标和作用


1.1.1 操作系统的目标


1. 有效性:

(1)提高了系统资源利用率,如使空闲的CPU和I/O保持忙碌状态,有效的内存分配策略节省存储空间等

(2)提高了系统的吞吐量


2. 方便性:    便于使用,如引入GUI操作界面


3. 可扩展性: 能适应于不同的计算机硬件、体系结构


4. 开放性: 遵循开放系统互联(OSI) 的标准,兼容软硬件,方便实现计算机互联


1.1.2 操作系统的作用


1. 用户和硬件间的接口:(1)命令方式 (2)图形界面方式(3)系统调用(在应用程序中)


2. 管理计算机资源:如内存的分配与回收、CPU管理、I/O管理、文件管理等等


3. 抽象计算机系统资源:隐藏计算机硬件的细节,向上提供高级抽象


1.1.3 发展动力


1. 对计算机资源利用率的追求:如能提高I/O设备和CPU利用率的SPOOLing系统,提高存储器系统利用率的虚拟存储技术

2. 方便用户

3. 硬件的更新迭代

4. 计算机体系结构的发展


1.2 操作系统的发展过程



 无操作系统的计算机操作系统


问题:CPU和I/O之间速度鸿沟太大,CPU的空闲率高


解决方法:脱机输入输出技术(Off-Line I/O)


优点:

(1)减少了主机CPU的空闲时间(外围机完成了输入输出设备和磁盘的连接)

(2)提高了I/O的速度,CPU在运行中需要数据的时候,可以从高速的磁带/磁盘中将数据调入内存




 单道批处理系统


相比”无操作系统的计算机操作系统“多了一个监督程序(Monitor)

(1)自动性

(2)顺序性

(3)单道性(内存中仅有一道程序在运行)



 多道批处理系统


精髓:由调度算法从队列中选取若干作业调入内存,共享CPU等系统资源


好处:

(1)资源利用率高(CPU、内存、I/O)

(2)吞吐量大


坏处:

(1)平均周转时间长(作业仍需要排队,比如就算A申请I/O中断了,CPU也会先跑B,不会跑C)

(2)无交互能力(提交后,直到其完成)


要解决的问题:处理器、内存、文件、I/O、作业的管理问题



 分时系统


精髓:一主机,多终端共享资源,时间片


要解决的问题:及时接收,及时处理(重要,影响人机交互体验)



 实时系统


精髓:系统能及时响应外部事件的请求,在规定的时间内完成处理。相比分时系统更强调“可靠性”,不能有差错。




微机操作系统的发展


1. 单用户单任务操作系统:一次一个用户,一次一个程序,例:MS-DOS

2. 单用户多任务操作系统:一次一个用户,若干程序并发执行,例:windows

3. 多用户多任务操作系统:多个用户终端连接一个主机,每个用户有若干程序。每个用户被分配时间片,在自己的时间片中,用户                                              程序并发执行,例:UNIX


1.3 操作系统的基本特性


1.3.1 并发性


1. 并行、并发

并行:多个事件在同一时刻发生;并发:多个事件在同一个时间段内发生(一个时刻仍只允许发生一个事件)

只有在多处理器架构上,才有并行。


2. 进程

为什么引入进程:为了并发。如果没有并发,程序是一个执行单元,要么做完,要么一点也不做,就变成单任务了。多个进程之间可以并发执行、交换信息


3. 线程

进程拥有自己的资源,调度的时候有一定开销。为什么引入线程:为减少调度开销,提高并发度。一个进程有多个线程,它们共享这个进程的资源。结果:进程是分配资源的基本单位;线程是运行和调度的基本单位。


1.3.2 共享性


概念:系统资源供多个在内存中的并发执行的进程共享


实现方式:


1. 互斥共享 

2. 同时访问(单处理器上同时间段,不同时刻访问;多处理器上可以实现同时刻访问(真正的同时))


1.3.3 虚拟技术


概念:使一个物理实体对应多个逻辑实体


1. 时分复用技术


1)虚拟处理器技术(分时间片供多个用户使用,就好像感觉每个用户都有一个处理器为它们服务一样)

2)虚拟设备技术(比如打印机)


2. 空分复用技术


1)虚拟磁盘技术(一个盘片分成几个卷,如windows上面的C、D、E盘等)

2)虚拟存储器技术(在逻辑上扩大存储器容量,后面在将存储器一章的时候,会详细介绍)

1.3.4 异步性


内存中有各种作业,处理器密集型的,I/O密集型的。由于各种原因,进程完成的时间是不可预知的,这就是进程的异步性。


1.4 操作系统的主要功能


1.4.1 处理器的功能


1. 进程控制

主要功能:创建,撤销,终止进程;控制进程运行中的状态转化;为进程创建,撤销,终止线程


2. 进程同步

主要功能:协调多个进程(含线程)的运行


两种方式:

(1)进程互斥

(2)进程同步


实现方法:最简单:锁,最常用:信号量


3. 进程通信


相互合作的进程之间需要交换信息


4. 调度


(1)作业调度

从后备作业队列中,按算法选出若干作业,调入内存,建立进程,按算法插入就绪进程队列


(2)进程调度

从就绪进程队列中,按算法选出一个进程(一个处理器上),分配处理器,保存上下文信息,执行。


(另外,如果是在 “线程作为运行和调度的基本单位” 的多线程OS中,就把上面的“进程”换成线程就好了。)


1.4.2 存储器管理功能


1. 内存分配


作用:为要运行的程序分配内存空间。

分类:

           静态内存分配:作业的内存空间在装入时已确定,不得更改;也不准作业在内存中移动

           动态内存分配:装入时有一个大概的基本空间,后面可以再申请;允许作业在内存中移动


2. 内存保护


作用:确保程序都只在自己的那块内存中运行

实现:由硬件作越界检查,发现越界后与软件配合处理


3. 地址映射

作用:把地址空间中的逻辑地址转换为内存空间中对应的物理地址,让程序正确运行。


4. 内存扩充


作用:允许内存中有更多的程序并发执行

实质:用一些技术使内存能装入更多的程序来并发执行,实际上并没有提高内存的容量。

实现:

(1)请求调入功能:只装入程序的一部分和部分数据就可以让程序执行。运行到需要程序别的部分和新数据了,再叫OS从磁盘调入。

(2)置换功能:发现内存中没有足够空间来容纳需要调入的程序和数据了,叫OS看看能不能把内存中暂时不用的程序和数据调回磁盘去,腾出空间纳入亟需使用的程序和数据。


1.4.3 设备管理功能

1. 缓冲管理

2. 设备分配

3. 设备处理


1.4.4 文件管理功能

1. 存储空间管理

2. 目录管理

3. 读/写管理、保护


1.4.5 OS和用户间的接口


(1)用户接口(2)程序接口(系统调用)


1.5 OS结构设计


1.5.1 传统的操作系统结构


1. 无结构操作系统 :适用于小系统,功能拓展起来,代码量一多就很难管理。

2.模块化操作系统 :模块化,有助于系统拓展。但是模块化开发之间的顺序不确定--无序性。

3. 分层式操作系统:改进模块化操作系统,使模块之间的开发有序,但是代价是降低系统的效率。

1.5.2 客户-服务器 模式


优点:
数据分布处理:不用全放在一个主机上、
灵活:改变一个客户机上的软件不会对其他的客户机和服务器造成影响

缺点:不可靠,一个服务器故障,导致多个客户机请求失败、布置格局费时--服务器负荷太重,会增加响应时间

1.5.3 面向对象程序设计


特点:对象(模拟现实)--易于理解、继承--可扩展性、封装--隐蔽性

1.5.4 微内核OS结构


1. 概念:
1)微内核足够小,仅实现与硬件相关的基本功能,作为基础。
2)基于“客户-服务器”模式。客户指用户进程,服务器指处理这个进程的服务器,如进程服务器。微内核是来调控它们的交互               的,仿佛独立于模式之外的“神之手”。
3)底层机制放在微内核中,高层的策略算法放在OS的其他部分。
4)也是使用面向对象技术编程的

2. 功能:
1)进/线程管理 2)低级存储器管理(硬件相关) 3)中断和陷入管理

3. 优点:
1)可扩展:OS中增加一个新的服务器,就方便地拥有新功能了。
2)可靠:有微内核的调控,客户进程或者服务器出问题了,也不会影响到别的部分
3)可移植:微内核和硬件相关,移植的时候基本只需改动微内核,而微内核代码量小,因此可移植性高。

4. 问题:
由于3优点中的2)可靠,意味着客户进程和服务器交互的时候,常常需经微内核调控,上下文切换成本高,系统运行效率受影响。

你可能感兴趣的:(操作系统,操作系统,读书笔记)