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


目录
相关文章
|
11月前
|
弹性计算 运维 安全
优化管理与服务:操作系统控制平台的订阅功能解析
本文介绍了如何通过操作系统控制平台提升系统效率,优化资源利用。首先,通过阿里云官方平台开通服务并安装SysOM组件,体验操作系统控制平台的功能。接着,详细讲解了订阅管理功能,包括创建订阅、查看和管理ECS实例的私有YUM仓库权限。订阅私有YUM仓库能够集中管理软件包版本、提升安全性,并提供灵活的配置选项。最后总结指出,使用阿里云的订阅和私有YUM仓库功能,可以提高系统可靠性和运维效率,确保业务顺畅运行。
|
6月前
|
Ubuntu Unix Linux
操作系统的最强入门科普(Unix/Linux篇)
下期文章,小枣君会重点聊聊Windows和macOS那条线。敬请关注! 如果大家觉得文章不错,还请帮忙多多转发!谢谢!
|
6月前
|
Web App开发 缓存 Rust
|
7月前
|
监控 Linux 开发者
理解Linux操作系统内核中物理设备驱动(phy driver)的功能。
综合来看,物理设备驱动在Linux系统中的作用是至关重要的,它通过与硬件设备的紧密配合,为上层应用提供稳定可靠的通信基础设施。开发一款优秀的物理设备驱动需要开发者具备深厚的硬件知识、熟练的编程技能以及对Linux内核架构的深入理解,以确保驱动程序能在不同的硬件平台和网络条件下都能提供最优的性能。
411 0
|
9月前
|
安全 算法 Ubuntu
Linux(openssl)环境:编程控制让证书自签的技巧。
总结:在Linux环境中,OpenSSL是一个非常实用的工具,可以帮助我们轻松地生成自签名证书。通过上述三个简单步骤,即可为内部网络、测试环境或开发环境创建自签名证书。但在公共访问场景下,建议购买经过权威认证机构签发的证书,以避免安全警告。
435 13
|
11月前
|
弹性计算 监控 安全
实测阿里云操作系统控制台:功能、诊断与优化
阿里云操作系统(AliOS)是阿里巴巴专为物联网和智能设备开发的操作系统,提供高效、安全、智能化的解决方案。本文介绍了如何开通和使用阿里云的云服务器ECS,包括注册、选择操作系统、创建用户及授权等步骤。通过控制台,用户可以实时监控设备状态、管理组件、进行性能诊断,并优化资源使用。掌握这些功能有助于提升系统管理和数据处理能力,满足物联网场景的多样化需求。建议进一步丰富系统健康指标和观测功能,以提供更好的用户体验。
591 24
|
12月前
|
前端开发 JavaScript 开发工具
【04】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-正确安装鸿蒙SDK-结构目录介绍-路由介绍-帧动画(ohos.animator)书写介绍-能够正常使用依赖库等-ArkUI基础组件介绍-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
【04】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-正确安装鸿蒙SDK-结构目录介绍-路由介绍-帧动画(ohos.animator)书写介绍-能够正常使用依赖库等-ArkUI基础组件介绍-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
838 5
【04】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-正确安装鸿蒙SDK-结构目录介绍-路由介绍-帧动画(ohos.animator)书写介绍-能够正常使用依赖库等-ArkUI基础组件介绍-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
|
中间件 关系型数据库 数据库
docker快速部署OS web中间件 数据库 编程应用
通过Docker,可以轻松地部署操作系统、Web中间件、数据库和编程应用。本文详细介绍了使用Docker部署这些组件的基本步骤和命令,展示了如何通过Docker Compose编排多容器应用。希望本文能帮助开发者更高效地使用Docker进行应用部署和管理。
377 19
|
11月前
|
JavaScript Ubuntu Linux
如何在阿里云的linux上搭建Node.js编程环境?
本指南介绍如何在阿里云Linux服务器(Ubuntu/CentOS)上搭建Node.js环境,包含两种安装方式:包管理器快速安装和NVM多版本管理。同时覆盖全局npm工具配置、应用部署示例(如Express服务)、PM2持久化运行、阿里云安全组设置及外部访问验证等步骤,助你完成开发与生产环境的搭建。
|
11月前
|
人工智能 弹性计算 运维
深度评测阿里云操作系统控制台:功能全面,体验卓越!
阿里云操作系统控制台是阿里云提供的高效、稳定、易用的云运维管理平台,结合百万服务器运维经验,提供系统资源监控、问题分析和故障解决功能。用户可通过该平台进行ECS实例管理、组件安装、健康检查、系统诊断及订阅管理等操作,支持API、SDK、CLI等多种管理方式。其界面简洁明了,操作流程直观易懂,适合各层次用户使用。推荐指数:★★★★★(5/5)。
1037 9