《Linux操作系统编程》第一章 操作系统引论:了解操作系统的发展、特征、功能以及操作系统结构

简介: 《Linux操作系统编程》第一章 操作系统引论:了解操作系统的发展、特征、功能以及操作系统结构

🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁

🦄 个人主页——libin9iOak的博客🎐
🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺
🌊 《IDEA开发秘籍》学会IDEA常用操作,工作效率翻倍~💐
🪁🍁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬请批评指正!🍁🐥

文章目录

第一章 操作系统引论

学习目的

要求学生了解操作系统的发展、特征、功能以及操作系统结构。

学习要求

了解:操作系统的层次结构、操作系统的发展及各类型的含义。用户接口的意义和类型、操作系统的形成和发展,传统操作系统的结构设计,以及操作系统的功能模块。

理解:操作系统的目标和作用、脱机输入输出技术、批处理技术、多道程序设计、什么是操作系统、操作系统的基本类型,各类型的基本概念和特点。

掌握:操作系统的基本概念、操作系统的特征。

学习方法

本章重在让学生理解操作系统的基本概念。许多概念非常抽象,需要反复思考,归纳和总结。因此本章需要学生培养抽象思维能力。

概念和原理

1.1 操作系统概述

1.1.1 操作系统的定义

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

1.1.2 操作系统的目标和应用

(1) 操作系统的目标

  1. 方便性:操作系统使计算机更易于使用。
  2. 有效性:操作系统允许以更有效的方式使用计算机系统资源。a)提高系统资源利用率 b)提高系统的吞吐量
  3. 可扩展性:在操作系统中,允许有效地开发,测试和引进新的系统功能。
  4. 开放性:实现应用程序的可移植性和互操作性,要求具有统一的开放的环境。

(2) 操作系统的作用

  1. OS作为用户与计算机硬件系统之间的接口
  2. OS作为计算机系统资源的管理者
  3. OS用作扩充机器

1.2 操作系统的发展历程

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

(1) 人工操作方式

(2) 脱机输入/输出方式

1.2.2 单道批处理系统

(1) 单道批处理系统的处理过程

首先,由监督程序将磁带上的第一个作业装入内存,并把运行控制权交给该作业。当该作业处理完成时,又把控制权交还给监督程序,再由监督程序把磁带(盘)上的第二个作业调入内存。计算机系统就这样自动地一个作业一个作 业地进行处理,直至磁带(盘)上的所有作业全部完成,这样便形成了早期的批处理系统。

(2) 单道批处理系统的特征

自动性、顺序性、单道性

1.2.3 多道批处理系统

(1) 多道程序设计的基本概念

在该系统中,用户所提交的作业都先存放在外存上并排成一个队列,称为“后备队列”;然后,由作业调度程序按一定的算法从后备队列中选择若干个作业调入内存,使它们共享 CPU 和系统中的各种资源。

(2) 多道批处理系统的特征

多道性、无序性、调度性

(3) 多道批处理系统的优缺点

1)资源利用率高

2)系统吞吐量大

3)平均周转时间长

4)无交互能力

(4) 多道批处理系统需要解决的问题

1)处理机管理问题

2)内存管理问题

3)I/O 设备管理问题

4)文件管理问题

5)作业管理问题

1.2.4 分时系统

分时系统(Time Sharing System)与多道批处理系统之间有着截然不同的性能差别,它能很好地将一台计算机提供给多个用户同时使用,提高计算机的利用率。它被经常应用于查询系统中,满足许多查询用户的需要。

(1) 分时系统实现中的关键问题

1)及时接收 2)及时处理

(2) 分时系统的特征

多路性、独立性、及时性、交互性

1.2.5 实时系统

所谓“实时”,是表示“及时”,而实时系统(Real Time System)是指系统能及时(或即时)响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。

(1) 应用需求

1)实时控制 2)实时信息处理

(2) 实时任务

1)按任务执行时是否呈现周期性来划分:a)周期性实时任务 b)非周期性实时任务

2)根据对截止时间的要求来划分:a)硬实时任务 b)软实时任务

(3) 实时系统的特征

  1. 多路性:能对多个对象进行控制。
  2. 独立性:独立运行,不混淆,不破坏。
  3. 交互性:仅限于访问系统中某些特定的专用服务程序。
  4. 可靠性:高可靠性,应具有多级容错防护能力。
  5. 及时性:不同的系统要求不一样,控制对象必须在截止时间内完成。

1.3 操作系统的基本特征和功能

1.3.1 操作系统基本特征

操作系统并发、共享、虚拟和异步这四个基本特征。其中,并发特征是操作系统最重要的特征,其它三个特征都是以并发特征为前提的。

(1) 并发性

  1. 并行与并发

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

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

  1. 进程

通常的程序是静态实体(Passive Entity),在多道程序系统中,它们是不能独立运行的,更不能和其它程序并发执行。在操作系统中引入进程的目的,就是为了使多个程序能并发执行。

  1. 线程

通常在一个进程中可以包含若干个线程,它们可以利用进程所拥有的资源。在引入线程的 OS 中,通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位。由于线程比进程更小,基本上不拥有系统资源,故对它的调度所付出的开销就会小得多,能更高效地提高系统内多个程序间并发执行的程度。

(2) 共享性

在操作系统环境下,所谓共享(Sharing),是指系统中的资源可供内存中多个并发执行的进程(线程)共同使用,相应地,把这种资源共同使用称为资源共享,或称为资源复用。

  1. 互斥共享方式

当一个进程 A 要访问某资源时,必须先提出请求。如果此时该资源空闲,系统便可将之分配给请求进程 A 使用。此后若再有其它进程也要访问该资源时(只要 A 未用完),则必须等待。仅当 A 进程访问完并释放该资源后,才允许另一进程对该资源进行访问

  1. 同时访问方式

系统中还有另一类资源,允许在一段时间内由多个进程“同时”对它们进行访问。这里所谓的“同时”,在单处理机环境下往往是宏观上的,而在微观上,这些进程可能是交替地对该资源进行访问。

(3) 虚拟性

操作系统中的所谓“虚拟”(Virtual),是指通过某种技术把一个物理实体变为若干个逻辑上的对应物。物理实体(前者)是实的,即实际存在的,而后者是虚的,仅是用户感觉上的东西。相应地,用于实现虚拟的技术称为虚拟技术。

  1. 时分复用技术

- 虚拟处理机:分时实现

- 虚拟设备:SPOOLING技术

  1. 空分复用技术

- 虚拟磁盘技术:逻辑分区

- 虚拟存储器:虚拟存储管理实现

(4) 异步性

内存中的每个进程在何时能获得处理机运行,何时又因提出某种资源请求而暂停,以及进程以怎样的速度向前推进,每道程序总共需多少时间才能完成,等等,这些都是不可预知的。由于各用户程序性能的不同,比如,有的侧重于计算而较少需要 I/O,而有的程序其计算少而 I/O 多,这样,很可能是先进入内存的作业后完成,而后进入内存的作业先完成。或者说,进程是以人们不可预知的速度向前推进,此即进程的异步性(Asynchronism)。

1.3.2 操作系统的主要任务和功能

(1) 操作系统的主要任务

为多道程序的运行提供良好的运行环境,以保证多道程序能有条不紊地、高效地运行,并能最大程度地提高系统中各种资源的利用率和方便用户的使用。

(2) 操作系统的主要功能

  1. 处理机管理(CPU)
  2. 存储器管理
  3. 设备管理
  4. 文件管理
  5. 方便用户使用的用户接口。

1.4 操作系统的结构设计

1.4.1 传统的操作系统结构

软件开发技术的不断发展,促进了 OS 结构的更新换代。这里,我们把早期的无结构OS(第一代)、模块化结构的 OS(第二代)和分层式结构的 OS(第三代),都统称为传统结构的OS,而把微内核结构的 OS 称为现代结构的 OS。

(1) 无结构操作系统

(2) 模块化结构OS:

为使 OS 具有较清晰的结构,OS不再是由众多的过程直接构成,而是将 OS 按其功能精心地划分为若干个具有一定独立性和大小的模块;每个模块具有某方面的管理功能,如进程管理模块、存储器管理模块、I/O 设备管理模块等,并仔细地规定好各模块间的接口,使各模块之间能通过该接口实现交互。

(3) 分层式结构OS:

为了将模块―接口法中“决定顺序”的无序性变为有序性,引入了有序分层法。

1.4.2 客户/服务器模型

(1) 客户/服务器模式的组成

客户/服务器系统主要由客户机、服务器和网络系统三个部分组成。

(2) 客户/服务器之间的交互

在采用客户/服务器的系统中,通常是客户机和服务器共同完成对应用(程序)的处理。这时,在客户机和服务器之间就需要进行交互,即必须利用消息机制在这两者之间进行多次通信。

(3) 客户/服务器模式的优点

  1. 数据的分布处理和存储
  2. 便于集中管理
  3. 灵活性和可扩充性
  4. 易于改编应用软件
1.4.3 面向对象的程序设计

(1) 面向对象技术的基本概念

(2) 面向对象技术的优点

  1. 通过“重用”提高产品质量和生产率
  2. 使系统具有更好的易修改性和易扩展性
  3. 更易于保证系统的“正确性”和“可靠性”
1.4.4 微内核OS结构

(1) 微内核操作系统基本概念

为了提高操作系统的“正确性”、“灵活性”、“易维护性”和”可扩充性”,在进行现代操作系统结构设计时,即使在单处理机环境下,大多也采用基于客户/服务器模式的微内核结构,将操作系统划分为两大部分:微内核和多个服务器

(2) 微内核的基本功能

  1. 进程(线程)管理
  2. 低级存储器管理
  3. 中断和陷入处理

(3) 微内核操作系统的优点

  1. 提高了系统的可扩展性
  2. 增强了系统的可靠性
  3. 可移植性
  4. 提供了对分布式系统的支持
  5. 融入了面向对象技术

(4) 微内核操作系统存在的问题

在微内核 OS 中,由于采用了非常小的内核,以及客户/服务器模式和消息传递机制,这些虽给微内核OS带来了许多优点,但由此也使微内核OS存在着潜在的缺点。其中最主要的是,较之早期 OS,微内核 OS 的运行效率有所降低。

重点

(1)操作系统中的基本概念

学生在初次学习计算机操作系统时,对操作系统概念的理解不是很清晰。在课程开始,通过操作系统应用、操作系统结构、操作系统设计等方面对操作系统进行全景式的介绍,为学生勾勒出操作系统全貌。

操作系统的作用和目标是重点,上述内容围绕这个目标来讨论。

(2)操作系统的基本类型

操作系统在发展过程中出现无操作系统、单道批处理系统、多道批处理系统、分时系统、实时系统和通用操作系统等类型的操作系统,详细介绍每类操作系统出现的历史背景、推动因素、基本原理、主要特征、要解决的问题、主要的优点和缺点;并总结出推动操作系统发展的主要因素。

(3)掌握操作系统的特征

通过对操作系统发展历程,即操作系统各种类型的介绍,体现出操作系统的各种基本特征,以及这些特征之间的联系,从而使学生掌握它们。

难点

(1)操作系统的特征

在操作系统的概念和类型的基础上,介绍主流操作系统的基本特征,重点是这些特征的体现、影响和相互关系。并讲述它们在三种操作系统:Unix、Linux、Windows中的体现。

(2)操作系统的结构特征

从设计和实现操作系统的角度,对操作系统的不同实现结构方式进行归纳总结,介绍常见的几种结构,并对比其特征和优缺点。

习题

1.设计现代OS的主要目标是什么?

答:(1)有效性 (2)方便性 (3)可扩充性 (4)开放性

2.OS有哪几大特征?其最基本的特征是什么?

答:并发性、共享性、虚拟性和异步性四个基本特征;最基本的特征是并发性。

3.试描述什么是微内核OS。

答:1)足够小的内核 2)基于客户/服务器模式

3)应用机制与策略分离原理 4)采用面向对象技术。

4.OS的作用可表现在哪几个方面?

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

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

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

5.何谓脱机I/O和联机I/O?

答:脱机I/O 是指事先将装有用户程序和数据的纸带或卡片装入纸带输入机或卡片机,在 外围机的控制下,把纸带或卡片上的数据或程序输入到磁带上。该方式下的输入输出由外围 机控制完成,是在脱离主机的情况下进行的。

而联机I/O方式是指程序和数据的输入输出都是在主机的直接控制下进行的。

原创声明

=======

作者: [ libin9iOak ]


本文为原创文章,版权归作者所有。未经许可,禁止转载、复制或引用。

作者保证信息真实可靠,但不对准确性和完整性承担责任。

未经许可,禁止商业用途。

如有疑问或建议,请联系作者。

感谢您的支持与尊重。

点击下方名片,加入IT技术核心学习团队。一起探索科技的未来,共同成长。


目录
相关文章
|
18天前
|
监控 Unix Linux
Linux操作系统调优相关工具(四)查看Network运行状态 和系统整体运行状态
Linux操作系统调优相关工具(四)查看Network运行状态 和系统整体运行状态
32 0
|
20天前
|
Linux 编译器 开发者
Linux设备树解析:桥接硬件与操作系统的关键架构
在探索Linux的庞大和复杂世界时🌌,我们经常会遇到许多关键概念和工具🛠️,它们使得Linux成为了一个强大和灵活的操作系统💪。其中,"设备树"(Device Tree)是一个不可或缺的部分🌲,尤其是在嵌入式系统🖥️和多平台硬件支持方面🔌。让我们深入了解Linux设备树是什么,它的起源,以及为什么Linux需要它🌳。
Linux设备树解析:桥接硬件与操作系统的关键架构
|
1月前
|
算法 Linux C++
【Linux系统编程】解析获取和设置文件信息与权限的Linux系统调用
【Linux系统编程】解析获取和设置文件信息与权限的Linux系统调用
29 0
|
1月前
|
算法 Linux C++
【Linux系统编程】深入解析Linux中read函数的错误场景
【Linux系统编程】深入解析Linux中read函数的错误场景
205 0
|
1月前
|
Linux API C语言
【Linux系统编程】深入理解Linux 组ID和附属组ID的查询与设置
【Linux系统编程】深入理解Linux 组ID和附属组ID的查询与设置
36 0
【Linux系统编程】深入理解Linux 组ID和附属组ID的查询与设置
|
1月前
|
Linux 数据安全/隐私保护 虚拟化
Linux技术基础(1)——操作系统的安装
本文是龙蜥操作系统(Anolis OS) 8.4 的安装指南,用户可以从[龙蜥社区下载页面](https://openanolis.cn/download)获取ISO镜像。安装方法包括物理机的光驱和USB闪存方式,以及虚拟机中的VMware Workstation Pro设置。安装过程涉及选择语言、配置安装目标、选择软件集合和内核,设置Root密码及创建新用户。安装完成后,可通过文本模式或图形化界面验证系统版本,如Anolis OS 8.4,标志着安装成功。
|
1月前
|
存储 算法 Linux
【Linux系统编程】深入理解Linux目录扫描函数:scandir目录函数(按条件扫描目录
【Linux系统编程】深入理解Linux目录扫描函数:scandir目录函数(按条件扫描目录
42 0
|
18天前
|
Linux
Linux操作系统调优相关工具(三)查看IO运行状态相关工具 查看哪个磁盘或分区最繁忙?
Linux操作系统调优相关工具(三)查看IO运行状态相关工具 查看哪个磁盘或分区最繁忙?
21 0
|
1月前
|
存储 算法 Linux
【Linux系统编程】Linux 文件系统探究:深入理解 struct dirent、DIR 和 struct stat结构
【Linux系统编程】Linux 文件系统探究:深入理解 struct dirent、DIR 和 struct stat结构
46 0
|
3天前
|
消息中间件 关系型数据库 MySQL
Linux:开源之魅与编程之道
Linux:开源之魅与编程之道
11 1