操作系统概述(二)

操作系统的基本特征、功能及结构

基本特征:

注:多道并发是最根本的特征, 并发引出五大管理功能,同时也使OS有了更多的特征

1.并发concurrence

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

并发性:两个或多个事件在同一时段发生

理解CPU并发:

              单处理器系统中,多道程序在宏观上看似并行,实际在微观上是多道程序占用cpu交替执行的,并不是真正的“并行”。多处理器系统才有CPU并行。

单处理器系统中的并行:

              在硬件技术支持的条件下,CPU 和 I/O操作能实现并行,这也是多道程序设计能够提高效率的原因之一。

注: 并发和进程是现代OS最重要的基本概念

2.共享sharing

互斥共享方式:

       对临界资源(如打印机)采用该方式,资源分配给某进程后未释放前,不能被其他进程所用。

  临界资源(独占资源):一段时间内只允许一个进程访问的资源。

同时访问方式:

       对允许“同时”访问的资源(如磁盘)采用该方式,但“同时”仍然是“宏观并行微观串行”的,不是真正的同时

注:

并发和共享互为存在的条件

多个程序并发才导致了资源需要共享

资源共享若没有协调好,必然影响程序的并发执行

3. 虚拟virtual

              通过某种技术把一个物理实体变为若干个逻辑对应物(用户感觉上的东西),两种实现方式:

时分复用

              一个物品被多人分时使用,在一段时间内就表现为每个人都有一个该物品可用,1虚拟为n。

空分复用

              一个物品划分为多个部分,多个人每人都有一部分可用,主观上看也是1虚拟成n。

4.异步性asynchronism

指进程的执行顺序和执行时间的不确定性

进程的运行速度不可预知

              由于资源等因素限制,进程通常不能一气呵成地执行完,多个进程并发执行是“时走时停”的,不可预知每个进程的运行推进快慢;

允许异步,但结果应正确

              只要环境相同,无论快慢,结果应该相同(可再现性),这需要进程互斥和同步手段来保证。

操作系统的主要功能

处理机管理功能(作业管理)

  存储器管理功能

  设备管理功能

文件管理功能

  用户接口

1.

处理机管理功能

1)进程控制:

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

(可理解为对单个进程基本信息进行管理)

2)进程同步:

为多个进程运行进行协调(包括互斥和同步)

3)进程通信:

用来实现在相互合作进程间的信息交换;(直接通信和网络通信)

4)调度:

作业调度(入内存)和进程调度(分配CPU)

2.  存储器管理功能

1)内存分配:为每道程序分配内存空间(包产到户)具体分配涉及许多细节:

分配方式:动态、静态

分配机制需要的数据结构、分配算法、回收内存功能

2)内存保护:确保每道用户程序都只在自己的内存空间中运行

需要一个硬件——界限寄存器,存放正在执行进程的内存上下界,每条指令的访问地址都要进行越界检查,一般用硬件实现检查

3)地址映射(变换):进程的逻辑地址到内存物理地址的映射。

程序编译形成的目标程序地址都是从0开始,是逻辑地址

真正调入内存某个空间存放的地址是物理地址

4)内存扩充:用虚拟存储技术解决内存容量不足的问题;

请求调入功能

页面置换功能

3.  设备管理功能

1)缓冲管理:匹配CPU和外设的速度,提高两者的利用率和并行操作程度;

2)设备分配:按某种设备分配策略,为之分配所需的设备;

  应设置设备控制表等数据结构记录设备及其控制器的标识符和状态;不同的设备,分配方式不同

3)设备处理:设备处理程序即驱动程序,及时X响应设备控制器请求,实现CPU和设备控制器之间的通信。

4.  文件管理功能

1)存储空间的管理:分配外存空间,提高外存的利用率,提高文件系统的运行速度;

  需要相应的数据结构,记录文件存储空间的使用情况;要有对存储空间分配和回收的功能

2)目录管理:为文件建立目录项,并有效组织,实现方便的按名存取;提供快速的目录查询手段,提高文件检索速度;还需实现文件共享。

3)文件的读写管理和保护:读写操作与有效的存取控制功能。

5.  用户接口

1)命令接口

       用户可通过键盘终端发出命令以控制作业的运行。

联机用户接口:由一组磁盘操作命令和命令解释程序组成。

脱机用户接口:由一组作业控制语言组成,如批处理文件。

2)程序接口

用户程序在执行中访问系统资源而设置,由一组系统调用组成。  早期汇编语言才能使用,后高级语言及C语言中都给出了系统调用对应的库函数。

3)图形接口

操作系统的结构

操作系统的结构

开发OS的过程中,先后引入了分解、模块化、抽象、屏蔽等方法,OS结构不断更新换代。

  无结构OS

模块化OS结构

分层式OS结构

微内核OS结构

1.传统的OS结构

1)无结构OS

早期开发OS,只追求实现和效率,缺乏贯穿的设计思想。是一组过程的集合。

问题:

过程互相调用,没有清晰的结构

程序错误很多,调试复杂,阅读维护困难

2)模块化OS结构

              20世纪60年代出现的一种程序设计技术。基于“分解”和“模块化”原则来控制大型软件的复杂度。

制定功能模块

规定各模块接口

划分子模块

       称为模块——接口的设计方法,关键是模块的划分和规定接口。

3)分层式OS结构

改进设计方式,变无序为有序——分层的思想

              在物理机器上逐渐添加具有一定功能的软件层,每一层仅使用底层提供的功能和服务。(功能流水线)

优点:

易保证系统正确性

易扩充和维护

缺点:

分层单向依赖,执行一个功能,总要自下而上地穿越多层,增加系统通信开销,降低了效率

2.微内核OS结构

Micro Kernel操作系统结构于20世纪80年代后期发展起来。尤其在多处理机环境下,更适用微内核技术。

与客户/服务器技术,面向对象技术同时发展起来的。微内核OS结构以OS为核心,以C/S为基础,采用了面向对象程序设计方法。

       1)客户/服务器技术

       2)面向对象技术

       3)微内核

1)Client/Server模式

三部分组成:客户端、服务器、网络系统

交互方式:客户请求,服务器接收消息,回送消息,客户接收消息,四步。

优点:数据分布处理和存储;灵活可扩充,易于修改维护,仍方便集中管理

微内核

1)足够小的内核

       微内核并非一个完整的OS。与硬件紧密相关,实现较基本功能,复杂客户和服务器通信。

2)基于C/S模式

3)应用”机制与策略分离“原理

       机制——实现某一功能的具体执行机构,位于基层;策略——借助某些参数和算法实现功能优化或达到不同功能目标,位于系统高层。

4)采用面向对象技术

微内核的优点

灵活、可扩充:可选配功能服务器模块

增强可靠性:内核是稳定的核心,只有它能直接访问硬件。服务器在用户态出错绝不会导致系统瘫痪。

可移植性:操作系统绝大部分(各种服务器程序)与硬件平台无关,在不同硬件平台间移植时修改比较小。

该机制尤其适用于分布式系统

采用面向对象技术,减少开发开销

原文地址:https://www.cnblogs.com/lls101/p/9709971.html

时间: 2024-10-12 08:41:14

操作系统概述(二)的相关文章

计算机操作系统学习笔记_1_操作系统概述

操作系统概述 一.操作系统的概念.特征.功能和提供的服务 1.操作系统的概念     操作系统是计算机系统中最重要.最基本的系统软件,操作系统位于硬件和用户程序之间.    对于用户来讲:它能向用户提供使用计算机的接口;    从资源管理角度来看:它能管理计算机软硬件资源,提高其利用率;    再者,利用虚拟机技术(如WMWare,VirtualBox,Java虚拟机等),扩展了计算机的功能和使用范围.     因此,操作系统的定义为:操作系统是控制和管理计算机软.硬件资源,以尽可能合理.高效的

操作系统概述及发展历程

一.操作系统概述 计算机由CPU.内存.硬盘.主板.输入/输出设备等硬件组成. SHELL是特殊的应用程序,为用户提供与系统进行交互的入口. SHELL分为两类: GUI(Graphical User Interface),如Gnome.KDE.Xfce.Windows等: CLI(Command Line Interface),如sh.bash.ksh.cmd等 二.操作系统发展史 早期的操作系统为批处理系统,如job1$$$$job2$$$$job3$$$...... GE.Bell实验室.

《操作系统》第1章:操作系统概述

第1章:操作系统概述 1.1 操作系统概述 操作系统的基本特征:并发.共享.虚拟.异步.最基本特征:并发和共享.操作系统可粗分为:硬件.操作系统.应用程序.用户.操作系统是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源分配,以提供给用户和其他软件方便的接口和环境的程序集合,是计算机系统中最基本的系统软件.并发性是指若干事件在同一时间间隔内发生,并行性是指若干事件在同一时刻发生.引入进程的目的是使程序能并发执行.操作系统的并发性是通过分时得以实现.并行性是指系统具有

操作系统——第一章 操作系统概述

操作系统 掌握操作系统的基本概念.基本原理和基本功能,理解操作系统的整体运行. 掌握操作系统进程.内存.文件和I/O管理的策略.算法.机制以及相互关系. 能够运用所学的操作系统原理.方法去分析问题和解决问题并能用C语言表述相关算法 一.操作系统概述 (一)   操作系统的概念.特征.功能和提供的服务 (二)   操作系统的发展和分类 (三)   操作系统的运行环境 内核态与用户态 中断.异常 系统调用 (四)   操作系统的体系结构 并发: 2.  共享: 3.虚拟: 比如说只有一个CPU,但是

【翻译】MongoDB指南/CRUD操作(二)

[原文地址]https://docs.mongodb.com/manual/ MongoDB CRUD操作(二) 主要内容: 更新文档,删除文档,批量写操作,SQL与MongoDB映射图,读隔离(读关注),写确认(写关注) 1 更新文档 1.1 更新 MongoDB提供下列方法用于更新一个集合 db.collection.updateOne() 更新使用指定过滤器匹配到的文档,即使过滤器匹配到多个文档,也只会更新一个文档. 3.2版本新增特性. db.collection.updateMany(

.NET下对MongoDB进行操作(二)

这次说下关于利用C#driver,对mongoDB进行简单的查询. 我们可以利用Query类中的静态方法来创建一系列query,达到查询的目的. Query在using MongoDB.Driver.Builders这一名称空间中. 1. 单一条件查询,可以参考如下代码: var query = Query.EQ("ColName", "Value"); foreach (BsonDocument doc in collection.Find(query)) { D

C语言的文件的操作(二)

C语言的文件的操作(二) 八.数据块读写   #fread 函数是从文件中读出数据块. int fread(void *buf, int size, int count, FILE *fp); #fwrite函数是向文件写入数据块. int fwrite(void *buf, int size, int count, FILE *fp); 参数: buf是一个指针,对fread是读入数据的存放地址,对fwrite是要输出数据的地址. size,要写的字节数:count,要进行写多少个size字节

操作系统概述

第一章        操作系统概述 A.  计算机系统的地位.作用与目标 计算机系统简单工作原理:首先由输入设备接受外界信息(程序和数据),控制器发出指令将数据送入存储器(内存),然后向内存储器发出取指令命令:在取指令下,程序指令送入控制器.控制器对指令进行译码,并根据指令的操作要求,向存储器和运算器发出存数.取数命令和运算命令,经过运算器计算并计算结果存在存储器中:最后在控制器中的取数和输出命令的作用下,通过输出设备输出计算结果. 操作成系统是硬件之上的第一层软件,负责控制和管理计算机硬件并对

linux基本命令操作(二)

·        du命令使用: [[email protected]]# du       //后没有选项和参数,默认评估当前目录下的所有目录的大小,当然也包括当前目录的大小// 237     ./grub 12      ./lost+found 6555    . [[email protected]]# ls config-2.6.18-348.el5  initrd-2.6.18-348.el5.img  System.map-2.6.18-348.el5 file1.txt]   

C语言文件操作(二)

实例2:读取字符文件,每次读入一个缓存里面. #include<stdio.h> #include <stdlib.h> #define MAXLEN 1024 int main() { FILE *fin; FILE *fout=fopen("c:\\dest.txt","wt"); char buf[MAXLEN]; if((fin=fopen("c:\\test.txt","rt"))!=NULL