文档章节

操作系统之操作系统概述(汤子瀛版)

吃一堑消化不良
 吃一堑消化不良
发布于 2015/01/03 20:11
字数 2995
阅读 74
收藏 1

1.1 操作系统的目标和作用

操作系统是一组控制和管理计算机软硬件资源,合理对各类作业进行调度,以及方便用户使用的程序的集合。

1. 操作系统的目标

有效性、方便性、可扩充性、开放性(前两个最重要,开放性是指遵循世界标准规范)

2. 操作系统的作用

(1) OS作为用户和计算机硬件系统之间的接口

用户可通过三种方式使用计算机:命令方式、系统调用方式、图形窗口方式

(2) OS作为计算机系统资源的管理者

(3) OS实现了对计算机资源的抽象

3. 推动计算机发展的主要动力

(1) 不断提高计算机资源的利用率

(2) 方便用户

(3) 器件的不断更新换代

(4) 计算机体系结构的不断发展

(计算机体系结构是那些能够被程序员所见到的计算机的属性,及概念性的结构与功能。站在不同层次上编程的程序员看到的计算机属性也是不同的;计算机组成原理是如何实现计算机体系结构所体现的属性,它包含了许多对程序员是透明的硬件环节)

1.2 操作系统的发展过程

1. 无操作系统的计算机系统(第一代计算机:真空管)

   (1) 人工操作方式(纸带->纸带输入机):用户独占全机,资源利用率低;CPU等待人工操作,CPU利用不充分。

(2) 脱机输入\输出方式(纸带->磁带->内存):减少CPU的空闲时间;提高I/O速度

2. 单道批处理系统 Simple Batch Processing System(第二代计算机:晶体管)

 把一批作业以脱机的方式输入到磁带上,以监督程序控制作业的连续处理,内存中始终保持一道作业,因此具有自动性、顺序性、单道性的特征。

3. 多道批处理系统 Multiprogrammed Batch Processing System(第三代:小规模集成电路)

(1)多道程序设计的优点:提高CPU、I/O设备、内存的利用率,增加系统吞吐量

(2)多道批处理系统优缺点:资源利用率高、系统吞吐量大、平均周转周期长、无交互能力

(3)多道批处理系统特点:用户脱机使用计算机、成批处理、多道程序运行(宏观上并行、微观上串行)

(4)存在的问题:处理机管理、内存管理、I/O设备管理、文件管理、作业管理

4. 分时系统 Time Sharing System

一台主机上连接了多个带有显示器和键盘的终端,同时允许多个用户通过自己的终端,以交互方式使用计算机,共享计算机中的资源,具有多路性、独立性、及时性、交互性特征。

第一台分时操作系统CTSS(Compatible Time Sharing System)由麻省理工学院研发。

分类:(1)简单分时操作系统(2)具有“前台“和”后台“的操作系统(3)多道分时操作系统

特征:多路性(同时性)、交互性、独占性、及时性

5. 实时系统 Real Time System

   (1) 分类:实时控制系统、实时信息处理系统

(2) 实时任务:

按任务执行是否呈现周期性来分:周期性实时任务、非周期性实时任务

    按对截止时间的要求来分:硬实时任务(某个动作必须在规定时间内发生)、软实时任务(允许偶尔违反时间规定,且不会引起永久性损害)

(3) 特征:多路性、独立性、及时性、交互性、可靠性

6. 微机操作系统

(1) 单用户单任务操作系统:CP/M(8位机)、MS/DOS(Disk Operating System)(16位机)

(2) 单用户多任务操作系统:Windows

(3) 多用户任务操作系统:UNIX OS(变体:Solaris OS 和 Linux OS)

1.3 操作系统的分类

1. 基本操作系统:批处理操作系统、分时操作系统、实时操作系统

2. 其它操作系统

(1) 嵌入式操作系统

(2) 集群系统 Clustered System

(3) 网络操作系统

(4) 分布式操作系统:多个分散的处理单元经互联网络连接而成的系统,其中每个处理单元既有高度自治性有相互协同,能在系统范围内实现资源管理、动态分配任务、并能并行的处理分布式程序;它具有统一性、共享性、透明性、自治性、分布性、并行性的特征。

1.4 操作系统的基本特性

1. 并发性(Concurrence)

(1) 并行与并发:

 并行:两个或多个事件在同一时刻发生

 并发:两个或多个事件在同一时间间隔内发生

(2) 在操作系统中,引入进程的目的是为了使程序能并发执行。

进程是在系统中能独立运行并作为资源分配的基本单位。多个进程间可以并发执行和交换信息。

(3) 在引入线程的OS中,以进程作为分配资源的最小单位,而把线程作为独立运行和调度的最小单位。

2. 共享性(Sharing)

资源共享的方式:互斥共享方式、同时访问方式(进程交替访问)

3. 虚拟(Virtual)

(1) 时分复用技术:虚拟处理机技术(多道程序设计)、虚拟设备技术

(2) 空分复用技术(实际上是频分复用技术):虚拟磁盘技术、虚拟存储器技术

4. 异步性(Asynchronism)

并发性和共享性是操作系统两个最基本的特征。

1.5 操作系统的主要功能

1. 操作系统作为计算机系统资源的管理者

(1)处理机管理

(1) 进程控制:为作业创建进程,撤销已结束进程,以及控制进程在运行过程中的状态转换。

(2) 进程同步:进程互斥方式(加锁)、进程同步(信号量机制)

(3) 进程通信

(4) 调度:作业调度(选择作业,分配资源,使其进入就绪队列)、进程调度(分配处理机)

(2)存储器管理

(1) 内存分配:内存分配数据结构、内存分配功能、内存回收功能

(2) 内存保护:每道程序都必须在自己的内存区中运行。

(3) 地址映射:将地址空间中的逻辑地址转换为内存空间中与之对应的物理地址。

(4) 内存扩充:借助虚拟存储技术,逻辑扩充内存容量,因此需具备请求调入功能、置换功能

(3)设备管理

(1) 缓冲管理:单缓冲机制、双缓冲机制、公共缓冲池机制

(2) 设备分配

(3) 设备处理:实现CPU和设备控制器之间的通信

(4)文件管理

(1) 文件存储空间的管理:通常采用离散分配方式,以盘块为基本分配单位,盘块大小通常为1-8KB

(2) 目录管理:为每个文件建立目录项,并对众多的目录项加以有效的组织,以实现方便的按名存取;文件共享功能;目录查询功能。

(3) 文件的读/写管理和保护

2. 操作系统与用户之间的接口

(1) 用户接口:提供给用户使用的接口

联机用户接口(交互式命令接口,适用于分时或实时系统的接口)、脱机用户接口(批处理用户接口,适用于批处理系统)、图形用户接口

(2) 程序接口:是提供给程序员编程时使用的接口,由一组系统调用(广义指令)命令组成

1.6 操作系统的运行环境

1. 操作系统的运行机制

大多数操作系统的内核应该包含四个方面的内容:

(1) 时钟管理(2)中断机制(3)原语(4)系统控制的数据结构及处理

核心态与用户态(CPU的执行状态)

(1)核心态(管态、系统态):操作系统管理程序执行时机器所处的状态

(2)用户态(目态):用户程序执行时机器所处的状态

核心态命令实际上包括系统调用类指令和一些针对时钟、中断和原语的操作指令。

用户态程序不能直接调用核心态子程序,而是通过执行访问核心态的命令,引起中断,由终端系统转入操作系统内的相应程序(硬件实现,在用户态下,执行访管指令将用户态转为核心态)

特权指令:只能由操作系统内核部分使用,不允许用户直接使用的指令。例如清内存、置时钟、分配系统资源、修改虚存的段表或页表、修改用户的访问权限等。

3. 中断和异常

中断(外中断)是指来自CPU执行指令意外的事件的发生。

异常(内中断、例外、陷入)是指CPU执行指令内部的事件(不能被屏蔽)。

中断是系统正常功能的一部分,异常是由错误引起的。通常异常会引起中断,但中断未必是有异常引起的。

3. 系统调用

系统调用是由操作系统实现的所有系统调用所构成的集合,即程序接口或应用编程接口API(Application Programming Interface),是应用程序同系统之间的接口

操作系统通常提供的系统调用有:进程控制、文件系统控制、系统控制、内存管理、网络管理、socket控制、用户管理以及进程间的信号。

1.7 操作系统的体系结构

1. 模块组合结构

优点:结构紧密、接口简单直接、系统效率相对较高

缺点:高耦合、可扩展性差、可适应性差

适用于系统小、模块少,使用环境比较稳定的系统

2. 层次结构

将操作系统的所有功能模块按功能的调用次序排列成若干层,使得功能模块之间只存在单向调用和单向依赖

优点:模块间的组织和依赖关系明了,系统的可读性、可适应性、可靠性得到了增强;对某层进行修改或替换时,最多只影响到临近两层,便与修改和扩充。

缺点:如何有效分层是问题

3. 微内核结构

(1)内核:在现代操作系统的设计中,往往把一些与硬件紧密相关的模块或运行频率较高的模块以及多模块公用的一些基本操作安排在靠近硬件的软件层次中,并使它们常驻内存,这就是操作系统的内核。

(2)微内核:在操作系统的内核中只留下一些基本的功能,而将其他服务尽可能从内核中分离出去,用若干个运行在用户态下的进程来实现,形成C/S模式。

优点:可靠性好、灵活性强、便于维护,适合与分布式处理的计算环境

缺点:各进程借助内核通信,系统效率不高;频繁的在用户态和核心态之间进行切换,系统开销大


© 著作权归作者所有

共有 人打赏支持
吃一堑消化不良
粉丝 28
博文 188
码字总数 112947
作品 0
浦东
程序员
私信 提问
加载中

评论(6)

行者深蓝
行者深蓝
42
吃一堑消化不良
吃一堑消化不良

引用来自“行者深蓝”的评论

教材太理论化,讲得太泛泛,除了应付考试外 推荐深入阅读 程序员的自我修养 和 自己动手写操作系统 两本书 对你更有意义

有在看自我修养,这本教材是我考研的复习笔记
吃一堑消化不良
吃一堑消化不良
有在看自我修养,这本教材是我考研的复习笔记
行者深蓝
行者深蓝
教材太理论化,讲得太泛泛,除了应付考试外 推荐深入阅读 程序员的自我修养 和 自己动手写操作系统 两本书 对你更有意义
吃一堑消化不良
吃一堑消化不良

引用来自“行者深蓝”的评论

大学课程笔记???

复习课程的笔记
行者深蓝
行者深蓝
大学课程笔记???
操作系统之进程管理_上(汤子瀛版)

2.1 进程的基本概念 1. 程序的顺序执行及其特征 特征:顺序性、封闭性、可再现性 2. 程序的并发执行及其特征 (1)特征:间断性、失去封闭性、不可再现性 (2)程序并发执行的条件——Berns...

吃一堑消化不良
2015/01/03
0
0
2016版《Linux 集群原理与实践》视频教程上线了!

课程简介: 在本课程中,我们通过学习群集基础原理,了解Pacemaker、Corosync等常见开源群集解决方案,再通过大量动手实验,深入掌握多种场景下高可用业务的构建,包括NFS、SAN、DRBD存储,H...

dbtrain
2016/10/17
0
0
Unix家族编年史

Unix是多用户、多任务的操作系统,它的历史悠久,也有多种版本。在Unix接触过程中常使用到的词,BSD,Linux等。初学者,甚至是接触unix很久的用户也未必对其家谱了如指掌。这篇文章描述的是U...

王二狗子11
2018/01/08
0
0
Go 语言 1.4 版本将支持面向 Android 开发

在前些日子谷歌于2009年发布的第二款自家语言Go语言刚刚发布了1.3正式版,大幅度解决了GC问题,最近谷歌开发版里又有了新爆料:谷歌终于要在1.4版本中正式支持Android系统开发,可以编译器直...

oschina
2014/06/22
10.8K
61
UNIX诞生40周年:过去,现在和将来

1969年8月,贝尔实验室的程序员肯汤普逊利用妻儿离开一个月的机会,开始着手创造一个全新的革命性的操作系统,他使用B编译语言在老旧的PDP-7机器上开发出了Unix的一个版本。操作系统,shell...

红薯
2009/06/05
880
0

没有更多内容

加载失败,请刷新页面

加载更多

JDK 12又来了,我学不动了...

写在前面 看到 JDK 12又发布了,萌新不知不觉感觉瑟瑟发抖,从 Java 1.8的函数式编程思维和范式 到 Java 1.9的模块化特性的加持 以及还没来得及深切感受一下 Java 1.11 的 ZGC强大之后,这次...

CodeSheep
15分钟前
0
0
解决在gradle构建project时,发生peer not authenticated错误的方法

问题: FAILURE: Build failed with an exception.* What went wrong:Could not resolve all dependencies for configuration ':wl01-service:compile'.> Could not resolve com.ali......

Benz001
24分钟前
1
0
Apache Ignite上的TensorFlow

任何深度学习都是从数据开始的,这是关键点。没有数据,就无法训练模型,也无法评估模型质量,更无法做出预测,因此,数据源非常重要。在做研究、构建新的神经网络架构、以及做实验时,会习惯...

李玉珏
50分钟前
6
0
Java记录日志附带请求标识

起因 系统是web接口服务,排查故障的时候经常需要记录某次请求调用链路日志。这样我们拉日志的时候只要匹配这个traceid就行了 第一版解决方案 原来我们一直用了个很low的办法,在请求开始的时...

Tree
53分钟前
3
0
使用split_size优化的ODPS SQL的场景

使用split_size优化的ODPS SQL的场景 首先有两个大背景需要说明如下: 说明1:split_size,设定一个map的最大数据输入量,单位M,默认256M。用户可以通过控制这个变量,从而达到对map端输入的...

阿里云官方博客
58分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部