《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技术核心学习团队。一起探索科技的未来,共同成长。


目录
相关文章
|
3天前
|
安全 Linux 数据安全/隐私保护
Vanilla OS:下一代安全 Linux 发行版
【10月更文挑战第30天】
12 0
Vanilla OS:下一代安全 Linux 发行版
|
17天前
|
人工智能 分布式计算 大数据
Linux操作系统:开源力量的崛起与影响###
一场技术革命的火种,如何燎原? 本文将带您深入探索Linux操作系统的诞生背景、核心特性及其对现代科技世界的深远影响。从1991年芬兰学生Linus Torvalds的一个小众项目,到如今成为支撑全球无数服务器、超级计算机及物联网设备的基石,Linux的发展既是一部技术创新史,也是开源文化胜利的见证。通过剖析其设计哲学、安全性、灵活性等关键优势,结合实例展示Linux在云计算、大数据处理等领域的广泛应用,本文旨在揭示Linux为何能在众多操作系统中脱颖而出,以及它如何塑造了我们今天的数字生活。 ###
|
14天前
|
安全 Linux 编译器
探索Linux内核的奥秘:从零构建操作系统####
本文旨在通过深入浅出的方式,带领读者踏上一段从零开始构建简化版Linux操作系统的旅程。我们将避开复杂的技术细节,以通俗易懂的语言,逐步揭开Linux内核的神秘面纱,探讨其工作原理、核心组件及如何通过实践加深理解。这既是一次对操作系统原理的深刻洞察,也是一场激发创新思维与实践能力的冒险。 ####
|
2天前
|
物联网 Linux 云计算
Linux操作系统的演变与未来趋势####
【10月更文挑战第29天】 本文深入探讨了Linux操作系统从诞生至今的发展历程,分析了其在服务器、桌面及嵌入式系统领域的应用现状,并展望了云计算、物联网时代下Linux的未来趋势。通过回顾历史、剖析现状、预测未来,本文旨在为读者提供一个全面而深入的视角,以理解Linux在当今技术生态中的重要地位及其发展潜力。 ####
|
7天前
|
边缘计算 人工智能 运维
Linux操作系统:开源力量的崛起与影响###
一场技术革命的回顾 回溯至1991年,当Linus Torvalds宣布Linux操作系统的诞生时,世界或许并未意识到这一举措将如何深刻地改变技术领域的面貌。本文旨在探讨Linux操作系统的发展历程、核心特性、以及它如何引领了一场开源运动,重塑了软件行业的生态。从最初的个人爱好项目成长为全球最广泛采用的服务器操作系统之一,Linux的故事是技术创新与社区精神共同推动下的辉煌篇章。 ###
|
6天前
|
人工智能 安全 Linux
|
9天前
|
物联网 Linux 5G
Linux操作系统的演变与未来趋势####
本文深入探讨了Linux操作系统的发展历程,从最初的一个学生项目到如今全球最流行的开源操作系统之一。文章将分析Linux的核心优势、关键特性以及它在云计算、物联网和嵌入式系统中的应用前景。通过具体案例展示Linux如何推动技术创新,并预测其在未来技术生态中的角色。本文旨在为读者提供一个全面而深入的理解,帮助他们认识到Linux在现代计算环境中的重要性及其未来的潜力。 ####
|
9天前
|
人工智能 安全 物联网
Linux操作系统的演变与未来:从开源精神到万物互联的基石###
本文是关于Linux操作系统的演变、现状与未来的深度探索。Linux,这一基于Unix的开源操作系统,自1991年由林纳斯·托瓦兹(Linus Torvalds)学生时代创造以来,已经彻底改变了我们的数字世界。文章首先追溯了Linux的起源,解析其作为开源项目的独特之处;随后,详细阐述了Linux如何从一个小众项目成长为全球最广泛采用的操作系统之一,特别是在服务器、云计算及嵌入式系统领域的主导地位。此外,文章还探讨了Linux在推动技术创新、促进协作开发模式以及保障信息安全方面的作用,最后展望了Linux在未来技术趋势中的角色,包括物联网、人工智能和量子计算等前沿领域的潜在影响。 ###
|
10天前
|
运维 监控 Shell
深入理解Linux系统下的Shell脚本编程
【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。
|
13天前
|
运维 物联网 Linux
Linux操作系统的演变与未来趋势####
本文通过探讨Linux操作系统的历史沿革、当前主流版本的特点,以及其在服务器、云计算和物联网等新兴领域的应用,旨在揭示Linux在现代计算环境中的重要性。此外,文章还将分析Linux面临的挑战与机遇,预测其未来的发展趋势。希望通过这篇文章,读者能够更好地理解Linux的价值,并对其未来充满期待。 ####