操作系统理论 第一章(操作系统引论)—第三节(操作系统的基本特性)

2024-03-24 17:12

本文主要是介绍操作系统理论 第一章(操作系统引论)—第三节(操作系统的基本特性),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

写在前面:

  1. 本系列笔记主要以《计算机操作系统(汤小丹…)》为参考,大部分内容出于此书,笔者的工作主要是挑其重点展示,另外配合下方视频链接的教程展开思路,在笔记中一些比较难懂的地方加以自己的一点点理解(重点基本都会有标注,没有任何标注的难懂文字应该是笔者因为强迫症而加进来的,可选择性地忽略)。
  2. 视频链接:操作系统(汤小丹等第四版)_哔哩哔哩_bilibili

一、并发

1、并行与并发

(1)操作系统就是伴随着“多道程序技术”出现的,因此操作系统和程序并发是一起诞生的,并发性是操作系统最基本的特性之一。另外,操作系统的并发性是通过分时实现的。

(2)并行性是指两个或多个事件在同一时刻发生,而并发性是指两个或多个事件在同一时间间隔内发生。在多道程序环境下,并发性是指在一段时间内宏观上有多个程序在同时运行,但在单处理机系统中,每一时刻却仅能有一道程序执行,故微观上这些程序只能是分时地交替执行。

(3)倘若在计算机系统中有多个处理机,这些可以并发执行的程序便可被分配到多个处理机上,实现并行执行,即利用每个处理机来处理一个可并发执行的程序。这样,多个程序便可同时执行。

①单核CPU同一时刻只能执行一个程序,各个程序只能并发地执行。

②多核CPU同一时刻可以同时执行多个程序,多个程序可以并行地执行。

2、进程的概念

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

(2)进程可以看作是一个程序的执行过程,程序执行前需要被放在内存中才能被CPU处理。

(3)多个进程之间可以并发执行和交换信息。

(4)关于进程的内容在下一章将会详细介绍。

二、共享

1、共享的概念

        在OS环境下的资源共享或称为资源复用,是指系统中的资源可供内存中多个并发执行的进程共同使用

2、互斥共享方式

        系统中的某些资源,如打印机、磁带机等,虽然可以提供给多个进程(线程)使用,但应规定在一段时间内,只允许一个进程访问该资源,为此在系统中应建立一种机制,以保证多个进程对这类资源的互斥访问。

        当进程A要访问某资源时,必须先提出请求,若此时该资源空闲,系统便可将之分配给请求进程A使用,此后若再有其它进程也要访问该资源,只要A未用完就必须等待,仅当A进程访问完并释放系统资源后,才允许另一进程对该资源进行访问。这种资源共享方式称为互斥式共享,把这种在一段时间内只允许一个进程访问的资源,称为临界资源(或独占资源)。系统中的大多数物理设备,以及栈、变量和表格,都属于临界资源,都只能被互斥地共享。

3、同时访问方式

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

        典型的可供多个进程“同时”访问的资源是磁盘设备。

三、虚拟

1、虚拟的概念

        在OS中,把通过某种技术将一个物理实体变为若干个逻辑上的对应物的功能称为“虚拟”,前者是实的,即实际存在的,而后者是虚的,是用户感觉上的东西。相应地,把用于实现虚拟的技术称为虚拟技术。

        在OS中是利用时分复用和空分复用技术来实现“虚拟”的。

2、时分复用技术

        时分复用技术能提高资源利用率的根本原因在于,它利用某设备为一用户服务的空闲时间,又转去为其它用户服务,使设备得到最充分的利用。

        ①虚拟处理机技术。利用多道程序设计技术,为每道程序建立至少一个进程,让多道程序并发执行,此时虽然系统中只有一台处理机,但通过分时复用的方法,能实现同时(宏观上)为多个用户服务,使每个终端用户都认为是有一个处理机在专门为他服务,亦即利用多道程序设计技术,可将一台物理上的处理机虚拟为多台逻辑上的处理机,在每台逻辑处理机上运行一道程序,我们把用户所感觉到的处理机称为虚拟处理器

        ②虚拟设备技术。利用虚拟设备技术,也通过分时复用的方法,将一台物理I/O设备虚拟为多台逻辑上的I/O设备,并允许每个用户占用一台逻辑上的I/O设备这样便可使原来仅允许在一段时间内由一个用户访问的设备即临界资源,变为允许多个用户同时访问的共享设备,既宏观上能同时为多个用户服务。例如原来的打印机属于临界资源,而通过虚拟设备技术又可以把它变为多台逻辑上的打印机,供多个用户“同时”打印。

3、空分复用技术

        空分复用技术是利用存储器的空闲空间分区域存放和运行其它的多道程序,以此来提高内存的利用率。不过,单纯的空分复用存储器只能提高内存的利用率,并不能实现在逻辑上扩大存储器容量的功能,还必须引入虚拟存储技术才能达到此目的。

        虚拟存储技术在本质上是实现内存的分时复用,即它可以通过分时复用内存的方式,使一道程序仅在远小于它的内存空间中运行。例如,一个100 MB的应用程序之所以可以运行在30 MB的内存空间,实质上就是每次只把用户程序的一部分调入内存运行,运行完成后将该部分换出,再换入另一部分到内存中运行,通过这样的置换功能,便实现了用户程序的各个部分分时地进入内存运行

四、异步

1、同步和异步的概念

(1)同步指的是任务按照顺序依次执行,并且每个任务必须等待前一个任务完成后才能开始执行。在同步模式下,任务之间的执行是阻塞的,即一个任务的执行会阻碍其它任务的进行,直到该任务结束。

(2)异步指的是任务可以并发或并行地执行,任务之间相互独立。在异步模式下,任务的执行是非阻塞的,即一个任务的执行不会等待其它任务的完成,而是通过回调函数、事件监听等机制实现任务的并发执行和结果的返回。

2、操作系统(进程)的异步性

        在多道程序环境下,系统允许多个进程并发执行。在单处理机环境下,由于系统中只有一台处理机,因而每次只允许一个进程执行,其余进程只能等待。当正在执行的进程提出某种资源要求时,如打印请求,而此时打印机正在为其它进程打印,由于打印机属于临界资源,因此正在执行的进程必须等待,并释放出处理机,直到打印机空闲,并再次获得处理机时,该进程方能继续执行。可见,由于资源等因素的限制,进程的执行通常都不可能一气呵成,而是以停停走走的方式运行

        对于内存中的每个进程,在何时能获得处理机运行,何时又因提出某种资源请求而停,以及进程以怎样的速度向前推进,每道程序总共需要多少时间才能完成等等,都是不可预知的,也就是说,进程是以人们不可预知的速度向前推进的,此即进程的异步性

这篇关于操作系统理论 第一章(操作系统引论)—第三节(操作系统的基本特性)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/842240

相关文章

java8的新特性之一(Java Lambda表达式)

1:Java8的新特性 Lambda 表达式: 允许以更简洁的方式表示匿名函数(或称为闭包)。可以将Lambda表达式作为参数传递给方法或赋值给函数式接口类型的变量。 Stream API: 提供了一种处理集合数据的流式处理方式,支持函数式编程风格。 允许以声明性方式处理数据集合(如List、Set等)。提供了一系列操作,如map、filter、reduce等,以支持复杂的查询和转

【Linux进阶】UNIX体系结构分解——操作系统,内核,shell

1.什么是操作系统? 从严格意义上说,可将操作系统定义为一种软件,它控制计算机硬件资源,提供程序运行环境。我们通常将这种软件称为内核(kerel),因为它相对较小,而且位于环境的核心。  从广义上说,操作系统包括了内核和一些其他软件,这些软件使得计算机能够发挥作用,并使计算机具有自己的特生。这里所说的其他软件包括系统实用程序(system utility)、应用程序、shell以及公用函数库等

【操作系统】信号Signal超详解|捕捉函数

🔥博客主页: 我要成为C++领域大神🎥系列专栏:【C++核心编程】 【计算机网络】 【Linux编程】 【操作系统】 ❤️感谢大家点赞👍收藏⭐评论✍️ 本博客致力于知识分享,与更多的人进行学习交流 ​ 如何触发信号 信号是Linux下的经典技术,一般操作系统利用信号杀死违规进程,典型进程干预手段,信号除了杀死进程外也可以挂起进程 kill -l 查看系统支持的信号

操作系统实训复习笔记(1)

目录 Linux vi/vim编辑器(简单) (1)vi/vim基本用法。 (2)vi/vim基础操作。 进程基础操作(简单) (1)fork()函数。 写文件系统函数(中等) ​编辑 (1)C语言读取文件。 (2)C语言写入文件。 1、write()函数。  读文件系统函数(简单) (1)read()函数。 作者本人的操作系统实训复习笔记 Linux

微信小程序开发必知必会:文件结构和基本配置

一、微信小程序基本文件结构 1.  project.config.json:项目的基本配置文件,包括项目名称、appid、项目目录、页面文件夹等。     {"setting": {"urlCheck": false,"es6": true,"postcss": true,"nodeModulesPath": "D:\\\\node_modules"},"appid": "wxd678e

好书推荐《深度学习入门 基于Python的理论与实现》

如果你对Python有一定的了解,想对深度学习的基本概念和工作原理有一个透彻的理解,想利用Python编写出简单的深度学习程序,那么这本书绝对是最佳的入门教程,理由如下:     (1)撰写者是一名日本普通的AI工作者,主要记录了他在深度学习中的笔记,这本书站在学习者的角度考虑,秉承“解剖”深度学习的底层技术,不使用任何现有的深度学习框架、尽可能仅使用基本的数学知识和Python库。从零创建一个

PHP的基本语法有哪些?

PHP的基本语法包括以下几个方面: PHP标记:PHP脚本以<?php开始,以?>结束。这是PHP文件的默认文件扩展名是.php。 变量和常量:变量以$符号开头,其后是变量的名称。常量使用define()函数定义,例如define("常量名", 常量值);。 数据类型:PHP支持多种数据类型,如整型、浮点型、字符串型等。 注释:PHP支持单行注释(用//表示)和多行注释(用/* */表示

SDAutoLayout/UIView+SDAutoLayout.h 的基本使用,记住这4个Api就足够了~

1.1 > leftSpaceToView(self.view, 10) 方法名中带有“SpaceToView”的方法表示到某个参照view的间距,需要传递2个参数:(UIView)参照view 和 (CGFloat)间距数值 1.2 > widthRatioToView(self.view, 1) 方法名中带有“RatioToView”的方法表示view的宽度或者高度等属性相对于参

HarmonyOS NEXT:华为开启全新操作系统时代

在全球科技浪潮的汹涌澎湃中,华为再次以创新者的姿态,引领了一场关于操作系统的革命。HarmonyOS NEXT,这一由华为倾力打造的分布式操作系统,不仅是对现有技术的一次大胆突破,更是对未来智能生活的一次深邃展望。 HarmonyOS NEXT并非简单的迭代升级,而是在华为多年技术积淀的基础上,对操作系统的一次彻底重构。它采用微内核架构,摒弃了传统的宏内核模式,实现了模块化和组件化的设计理念

Eclipse使用git最基本流程

Eclipse使用git最基本流程,eclipsegit流程 git有诸多好处,网上都说的很清楚了,在这里我不再赘述。对于我来说,私下里想做一些项目,而又不能很好的保存自己的代码和进行版本控制,这时候,就用到了git。下面,就以我个人为例讲讲git从0开始如何安装使用。 Step1 准备工作 msysgit,下载地址为http://msysgit.github.io/