DJ1-2 操作系统引论

news2025/1/23 9:30:13

目录

一、操作系统的发展过程

1. 无操作系统

2. 单道批处理系统

3. 多道批处理系统

4. 分时操作系统

5. 实时系统

二、操作系统的基本特征

1. 并发性

2. 共享性

3. 虚拟性

4. 异步性

三、操作系统的主要功能

1. 处理机管理功能

2. 存储器管理功能

3. 设备管理功能

4. 文件管理功能

5. 用户接口


一、操作系统的发展过程

1. 无操作系统

(1)人工操作方式

一台计算机的所有资源由用户独占,降低了计算机资源利用率。同时人工操作慢,出现了严重的人机矛盾。总结为以下缺点:

  • 用户独占全机
  • CPU 等待人工操作

输入输出依靠穿孔卡片。

(2)脱机输入输出方式

在外围计算机的控制下,实现输入输出。
主要解决了CPU与设备之间不匹配的矛盾,提高了I/O速度

2. 单道批处理系统

(1)含义

系统对作业的处理都是成批进行的,且在内存中始终仅存一道作业运行,运行结束或出错,才自动调另一道作业运行,故称为单道批处理系统。

JCL(Job Control Language)

事先将需要运行的若干个作业整理成一个批处理文件,再送给计算机。任一时刻,内存中仅存一道作业运行,即该作业独占所有的资源。CPU 运行完一个作业后,计算机自动调用下一道作业,该过程不需要人工干预。

(2)特点

  • 单道批处理系统主要特征:自动性、顺序性、单道性。
  • 单道批处理系统主要优点:减少人工操作,解决了作业的自动接续。
  • 单道批处理系统主要缺点:平均周转时间长,没有交互能力。

Input 作业和 Output 作业时 CPU 处于等待状态,浪费资源;使用单道批处理系统将不能对程序进行调试,也不能中途键入内容等。

周转时长

周转时长是指从提交 Job 到 Job 运行结束所需要的时间,即等待时长 + 运行时长。如:Job2 的周转时长 = Job2 等待 Job1 运行完毕的时长 + Job2 运行的时长;Job1 的周转时长 = Job1 运行的时长。

一般来说,平均周转时长越短,意味着各个 Job 的等待时长越短。

3. 多道批处理系统

(1)含义

在内存中存放多道作业运行,运行结束或出错,自动调度内存中的另一道作业运行。

多道 = 多少个作业,取决于 RAM 中能存放几个作业。

Input、CPU、Output 能同时工作,即当 Job1 进行 Output 时,CPU 能同时运行 Job2 。

多道批处理系统也是将作业一个一个地读入计算机,并且按照一定顺序进行运行。

(2)特点、优点、问题

主要特点:多道性、无序性、调度性(进程调度和作业调度)

主要优点:提高了资源利用率和系统吞吐率。

  • 提高 CPU 的利用率。
  • 提高内存和 I/O 设备的利用率。
  • 增加系统的吞吐率。

需要解决的 5 个问题:

  • 处理机管理:分配和控制 CPU
  • 存储器管理:内存分配与回收
  • I/O 设备管理:I/O 设备的分配与操纵
  • 文件管理:文件的存取、共享和保护
  • 作业管理:如何组织作业运行

由于单道批处理系统中一道作业独占所有资源,因此不需考虑上述问题。

(3)举例

设内存中有三道程序 A、B 和 C,它们按 A、B、C 的优先次序执行。它们的计算时间和 I/O 操作时间如下表所示。
假设三道程序能够使用相同的设备进行 I/O 操作,即程序以串行方式使用设备,试画出单道运行和多道运行的时间关系图(调度程序的执行时间忽略不计)。在两种情况下,完成这三道程序各要花多少时间?

ABC
计算30ms60ms20ms
I/O40ms30ms40ms
计算10ms10ms20ms

单道批处理系统运行的甘特图

多道批处理系统运行的甘特图

多道批处理系统按照顺序来执行各个作业。对于红点标注位置,虽然为了避免程序切换过程一般采用非剥夺形式,但本例是按顺序执行各个程序,因此逻辑上需要进行抢占。

4. 分时操作系统

(1)分时系统的产生

用户需要:人机交互、共享主机、便于用户上机。

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

  • 及时接收:实现多个用户的信息及时接收。
  • 及时处理:及时控制作业的运行。

(3)分时系统实现的方法

  • 简单分时系统
  • 具有 “前台” 和 “后台” 的分时系统
  • 多道分时系统

(4)分时系统的特点

  • 多路性:一个主机与多个终端相连。
  • 独立性:彼此独立操作,互不干扰。
  • 及时性:系统能在很短的时间得到回答。
  • 交互性:能实现人机对话(区别于批处理系统)。

(5)典型的分时系统

  • Multics (MIT)
  • UNIX
  • Linux

5. 实时系统

(1)实时系统的含义

是指计算机及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时设备和实时任务协调一致的运行。

规定时间内:开始截止时间 - 结束截止时间。

  • 实时控制系统:工业控制、军事控制、医疗控制等。
  • 实时信息处理系统:航班定票、联机情报检索等。

(2)实时系统的特点

  • 响应及时(prompt response)
  • 可靠性高(high reliability)

(3)实时系统的任务类型

硬实时任务失败将导致灾难性后果,软实时任务失败将导致坏的后果。

(4)实时系统的特征

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

二、操作系统的基本特征

现代 OS 的四个基本特征:

  • 并发性(最基本特征)
  • 共享性
  • 虚拟性
  • 异步性

并发是最重要的特征,其它特征都以并发为前提,即并发性导致了共享性、虚拟性和异步性。

并发和共享是操作系统的两个最基本的特征,它们又是互为存在的条件。

1. 并发性

(1)并行性和并发性

  • 并行性:是指两个或多个事件在同一时刻发生。(至少要有两颗 CPU)
  • 并发性:是指两个或多个事件在同一时间间隔内发生。

同一时刻,A 使用 CPU,B 使用 I/O,也是并行。

(2)任务共行

从宏观上看,任务共行是指系统中有多个任务同时运行;

从微观上看,任务共行是指单处理机系统中的任务并发或多处理机系统中的任务并行。

  • 任务并发(Task Concurrency)即多个任务在单个处理机上交替运行。
  • 任务并行(Task Parallelism)即多个任务在多个处理机上同时运行。

处理机就是指的 CPU 。

(3)进程

是指系统中能独立运行并作为资源分配的基本单位,由一组机器指令、数据和堆栈等组成的独立运行的活动实体。

程序进程
静态实体动态实体
程序 + 数据PCB + 程序 + 数据

(4)线程

由于切换进程的代价较大,因此引入线程的概念。

线程进程
作为独立运行和调度的基本单位作为资源分配的基本单位
程序 + 数据PCB + 程序 + 数据

线程不持有任何资源,需要时使用相应进程的资源。

2. 共享性

是指系统中的资源可供内存中多个并发执行的进程共同使用。

(1)互斥共享方式

把在一段时间内只允许一个进程访问的资源,称为临界资源。如:打印机、栈、表格等。系统中的临界资源可以提供给多个进程使用,但一段时间内仅允许一个进程使用,称为互斥共享方式。

(2)同时访问方式

  • 从宏观上看,资源共享是指多个任务可以同时使用系统中的软硬件资源。
  • 从微观上看,多个进程交替互斥地使用系统中的某个资源,如:磁盘。

3. 虚拟性

虚拟:是指通过某种技术把一个物理实体映射为若干个逻辑上的对应物。

(1)时分复用技术

  • 虚拟处理机:分时实现
  • 虚拟设备:SPOOLING技术

(2)空分复用技术

  • 虚拟磁盘技术:逻辑分区
  • 虚拟存储器:虚拟存储管理实现

内存不够,硬盘来凑,即虚拟内存容量 = 内存容量 + 硬盘系统区容量。

RAM 里的内容运行完后,产生缺页中断。将已运行的部分从 RAM 送入硬盘,将未运行的部分从硬盘送入 RAM 。

4. 异步性

是指多道程序环境下程序(进程)以异步的方式执行,每道程序在何时执行、各自执行的顺序、完成时间都是不确定的,也是不可预知的。

导致执行结果不确定,程序不可再现。

三、操作系统的主要功能

操作系统的主要任务

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

操作系统应具有五方面的功能

  1. 处理机管理(CPU):控制器和运算器
  2. 存储器管理(RAM)
  3. 设备管理:输入输出设备
  4. 文件管理
  5. 用户接口

前 3 点是对冯诺依曼体系中硬件系统的五大部件的管理。

1. 处理机管理功能

主要功能 :按照一定的算法把处理机分配给进程(线程),并对其进行有效的管理和控制。

① 进程控制

② 进程同步和互斥

  • 进程互斥方式(考信号量)
  • 进程同步方式

③ 进程通信

④ 进程调度

2. 存储器管理功能

主要功能 :为多道程序的运行提供良好的环境,方便用户使用存储器,提高存储器的利用率以及能从逻辑上扩充内存。

① 内存分配

② 内存保护

③ 地址映射

④ 内存扩充

3. 设备管理功能

主要功能 :完成用户进程提出的 I/O 请求;为用户进程分配其所需的 I/O 设备;提高 CPU 和 I/O 设备的利用率;提高 I/O 速度;方便用户使用 I/O 设备。

① 缓冲管理:有效地缓和 CPU 和 I/O 设备速度不匹配的矛盾 ,提高 CPU 的利用率。

② 设备分配:根据 I/O 请求,分配其所需的设备。(解决锁死)

③ 设备处理:设备处理程序又称为设备驱动程序。

4. 文件管理功能

主要功能 :对用户文件和系统文件进行管理,以方便用户使用,并保证文件的安全性。

① 文件存储空间的管理

② 目录管理

③ 文件的读/写管理和保护(权限管理:E/R/W)

5. 用户接口

(1)计算机用户需要的用户命令  

由 OS 实现的所有用户命令所构成的集合常被人们称为 OS 的 Interface (用户接口),有时也称为命令接口。

(2)应用软件需要的系统调用 System Call

由 OS 实现的所有系统调用所构成的集合被人们称为程序接口或应用编程接口(Application Programming Interface,API)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/397118.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python pca/svd原理及应用

PCA的定义主成分分析,即Principal Component Analysis(PCA),是多元统计中的重要内容,也广泛应用于机器学习和其它领域。它的主要作用是对高维数据进行降维。PCA把原先的n个特征用数目更少的k个特征取代,新特…

Elasticsearch使用——高级篇

1.数据聚合**聚合(aggregations)**可以让我们极其方便的实现对数据的统计、分析、运算。例如:什么品牌的手机最受欢迎?这些手机的平均价格、最高价格、最低价格?这些手机每月的销售情况如何?实现这些统计功…

【ns-3】添加nr(5G-LENA)模块

文章目录前言1. 下载5G-LENA源代码2. 配置并重新构建ns-3项目参考文献前言 本篇以ns-3.37为例介绍如何在ns-3中添加nr(5G-LENA)模块 [1]。5G-LENA是一个由Mobile Networks group CTTC(Centre Tecnolgic de Telecomunicacions de Catalunya&a…

微信小程序开发学习笔记1——安心食疗

2.1小程序代码结构 目录结构 1.小程序的目录 pages:小程序的页面 页面路径 一个小程序页面由四个文件组成,分别是: xxx.js xxx.wxml xxx.json xxx.wxss 注意:为了方便开发者减少配置项,描述页面的四个文件必须具有相同的路径与文…

MySQL(二)视图、锁、存储过程、触发器、锁以及常用工具

MySQL进阶视图检查选项视图的更新存储过程存储过程基本语法变量系统变量用户自定义变量局部变量if判断参数casewhile循环repeat循环loop循环cursor游标handler条件处理程序存储函数触发器锁全局锁表级锁表锁元数据锁意向锁行级锁行锁间隙锁&临键锁InnoDB引擎逻辑存储结构事…

使用Arduino开发ESP32:开发环境搭建

开发环境搭建 使用Arduino开发ESP32开发环境搭建方式和用Arduino开发ESP8266相似:https://blog.csdn.net/Naisu_kun/article/details/80186950#t0 下载安装Arduino IDE: https://www.arduino.cc/en/Main/Software Arduino IDE中添加ESP32开发板数据&a…

第二道pwn题:shellcode

题目来自视频:链接:https://pan.baidu.com/s/17vX9dbfHkXBw71mcEXBgNQ?pwd6666 提取码:6666查看文件类型和保护,虽然现在的我还没有明白太多的保护。64位,放到ida里边rbp:保存的是栈中当前执行函数的基本地址。当前执…

xCAT安装指南

一、简介 xCAT使您能够轻松管理任何类型的技术计算工作负载的大量服务器。xCAT以卓越的扩展、各种支持的硬件和操作系统、虚拟化平台和完整的“day0”设置功能而闻名。 二、安装指南 免责声明 这些说明仅为指南,具体细节可能因操作系统版本而略有不同。有关最新推…

TCP与UDP

概述 传输层时向上层的应用层提供通讯服务的,是属于面向通信部份的最高层,同时也是用户功能的最底层 传输层有两个很重要的特点:复用、分用 复用:应用层所有的应用进程都可以通过运输层再传到网络层 分用:运输层从网…

【Unity】多分辨率适配

笔者按:使用Unity版本为2021.3LTS,与其他版本或有异同。请仅做参考 一、前言。 本文是笔者在学习使用Unity引擎的过程中,产学研的一个笔记。由笔者根据官方文档Unity User Manual 2021.3 (LTS)/Create user interfaces (UI)/Unity UI/UI 操作…

mingw编译opencv

我这里是msys2 这个是msys2的教程 https://blog.csdn.net/qq_39942341/article/details/105931335?ops_request_misc%257B%2522request%255Fid%2522%253A%2522167821146216800197067008%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&requ…

【LeetCode】剑指 Offer 24. 反转链表 p142 -- Java Version

题目链接:https://leetcode.cn/problems/fan-zhuan-lian-biao-lcof/submissions/ 1. 题目介绍(24. 反转链表) 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。 【测试用例】: 示…

C++右值引用/移动语义

在此之前,我们所用的引用,其实都是左值引用。 int a 10; int& ra a; 下面我们来重新认识一下引用: 而何为左值?左值引用其实是什么?请往下看~ 左值是一个表示数据的表达式(如变量名或解引用的指针)&#xff…

77. writerows写入多行

文章目录1. 目标任务2. 准备工作3. writerow单行写入4. writerows多行写入5. a以追加的模式写入值6. 总结1. 目标任务 新建【各班级成绩】文件夹; 在该文件夹下新建一个【1班成绩单.csv】文件; 在该文件中写入下面的内容: 成绩 姓名 刘一…

CentOS 8搭建EMQX集群

概览 EMQX (opens new window)是一款大规模可弹性伸缩的云原生分布式物联网 MQTT (opens new window)消息服务器。 EMQ X 设计目标是实现高可靠,并支持承载海量物联网终端的MQTT连接,支持在海量物联网设备间低延时消息路由: 1. 稳定承载大规模的 MQTT 客…

Allegro如何添加菜单栏操作指导

Allegro如何添加菜单栏操作指导 用Allegro设计PCB的时候,将常用的命令放在菜单栏的话可以方便使用,省去设计时间,菜单如下图 Allegro支持自由添加或者删除菜单,具体操作如下 点击View点击Customize Toolbar

【使用vue init和vue create的区别以及搭建vue项目的教程】

vue init 是vue-cli2.x的初始化方式,可以使用github上面的一些模板来初始化项目 webpack是官方推荐的标准模板名 使用方式:vue init webpack 项目名称 例如使用github上面electron-vue的模板使用方式:vue init electron-vue 项目名称教程目…

Java的数据库编程:JDBC

Content 🎉1什么是API 🎉2.什么是JDBC 🎉3.数据库驱动包的安装 🎉4.数据库安装包在idea的使用 🎉5.JDBC的增删改查的简单实现 今天为大家带来JAVA的数据库编程,也就是用Java实现数据库 数据库的最基本的操作就是…

分布式锁简介

Redis因为单进程、性能高常被用于分布式锁;锁在程序中作用是同步工具,保证共享资源在同一时刻只能被一个线程访问。 Java中经常用的锁synchronized、Lock,但是Java的锁智能保证单机的时候有效,分布式集群环境就无能为力了&#xf…

软件设计师错题集

软件设计师错题集一、计算机组成与体系结构1.1 浮点数1.2 Flynn分类法1.3 指令流水线1.4 层次化存储体系1.4.1 程序的局限性1.5 Cache1.6 输入输出技术1.7 总线系统1.8 CRC循环冗余校验码二、数据结构与算法基础2.1 队列与栈2.2 树与二叉树的特殊性2.3 最优二叉树(哈…