当前位置: 首页 > news >正文

操作系统(1.2)--引论

目录

一、操作系统的基本特性

1.并发性 

1.1 并行与并发 

1.2 引入进程

2.共享性  

2.1 互斥共享方式

2.3 同时访问方式

3.虚拟

3.1 时分复用技术

4. 异 步

二、操作系统的主要功能 

1.处理机管理功能

1.1 进程控制 

1.2 进程同步 

1.3 进程通信

1.4 调度

2. 内存管理功能

2.1 内存分配

2.2 内存保护

2.3 地址映射

2.4 内存扩充

3.设备管理功能

4. 文件管理功能

5. 操作系统与用户之间的接口

6.现代操作系统的新功能


一、操作系统的基本特性

四个基本特征:并发、共享、虚拟和异步。 

并发和共享是操作系统的两个最基本的特征。

1.并发性 

1.1 并行与并发 

并行性和并发性是既相似又有区别的两个概念。并行性是指两个或多个事件在同一时
刻发生。而并发性是指两个或多个事件在同-一时间间隔内发生。在多道程序环境下,并发
性是指在一.段时间内宏观上有多个程序在同时运行,但在单处理机系统中,每一时刻却仅
能有一道程序执行,故微观上这些程序只能是分时地交替执行。

1.2 引入进程

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

2.共享性  

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

2.1 互斥共享方式

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

2.3 同时访问方式

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

3.虚拟

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

3.1 时分复用技术

在计算机领域中,广泛利用时分复用技术来实现虚拟处理机、虚拟设备等,使资源的
利用率得以提高。

时分复用技术能提高资源利用率的根本原因在于:

它利用某设备为一用户服务的空闲时间,又转去为其他用户服务,使设备得到最充分的利用。
(1)虚拟处理机技术。利用多道程序设计技术,为每道程序建立至少一个进程,让多道程序并发执行。
(2)虚拟设备技术。我们还可以利用虚拟设备技术,也通过分时复用的方法,将一台物理I/O设备虚拟为多台逻辑上的IO设备,并允许每个用户占用一台逻辑上的I/O设备。

4. 异 步

在多道程序环境下,系统允许多个进程并发执行。在单处理机环境下,由于系统中只
有一台处理机,因而每次只允许一个进程执行,其余进程只能等待。由于资源等因素的限制,使进程的执行通常都不可能“一气呵成”,而是以“停停走走”的方式运行
进程是以人们不可预知的速度向前推进的,此即进程的异步性。尽管如此,但只要在OS中配置有完善的进程同步机制,且运行环境相同,则作业即便经过多次运行,也都会获得完全相同的结果。因此异步运行方式是允许的,而且是操作系统的一个重要特征。 

二、操作系统的主要功能 

1.处理机管理功能

1.1 进程控制 

在多道程序环境下为使作业能并发执行,必须为每道作业创建一个或几个进程,并为之分配必要的资源。当进程运行结束时,应立即撤消该进程,以便能及时回收该进程所占用的各类资源,供其它进程使用。

1.2 进程同步 

为使多个进程能有条不紊地运行,系统中必须设置相应的进程同步机制。该机制的主要任务是为多个进程(含线程)的运行进行协调。

常用的协调方式有两种:

①进程互斥方式,
这是指诸进程在对临界资源进行访问时,应采用互斥方式;

②进程同步方式,

指在相互合作去完成共同任务的诸进程间,由同步机构对它们的执行次序加以协调。

1.3 进程通信

当有一组相互合作的进程去完成一个共同的任务时,在它们之间往往需要交换信息。
当相互合作的进程处于同一计算机系统时,通常在它们之间采用直接通信方式,即由源进程利用发送命令直接将消息(message)挂到目标进程的消息队列上,以后由目标进程利用接收命令从其消息队列中取出消息。

1.4 调度

(1)作业调度。作业调度的基本任务是从后备队列中按照- -定的算法选择出若干个作业,为它们分配运行所需的资源,在将这些作业调入内存后,分别为它们建立进程,使它们都成为可能获得处理机的就绪进程,并将它们插入就绪队列中。
(2)进程调度。进程调度的任务是从进程的就绪队列中按照一定 的算法选出一个进程,将处理机分配给它,并为它设置运行现场,使其投入执行。

2. 内存管理功能

2.1 内存分配

两种内存分配方式:静态和动态。
静态:

  • ①作业空间装入时确定
  • ②不允许申请新的内存空间
  • ③不允许在内存中“移动”

动态:

  • ①作业基本内存空间装入时确定
  • ②允许申请新的内存空间
  • ③允许在内存中“移动”

内存分配应具有的结构和功能:

  • (1)内存分配数据结构;
  • (2)内存分配功能;
  • (3) 内存回收功能

2.2 内存保护

内存保护的主要任务,是确保每道用户程序都只在自己的内存空间内运行,彼此互不干扰。
内存保护机制:设置两个界限寄存器,分别用于存放正在执行程序的上界和下界。 

2.3 地址映射

在多道程序环境下,每道程序不可能都从“0”地址开始装入(内存),这就致使地址空间内的逻辑地址和内存空间中的物理地址不相一致。使程序能正确运行,存储器管理必须提供地址映射功能,以将地址空间中的逻辑地址转换为内存空间中与之对应的物理地址。该功能应在硬件的支持下完成。

2.4 内存扩充

存储器管理中的内存扩充任务,并非是去扩大物理内存的容量,而是借助于虚拟存储技术,从逻辑上去扩充内存容量,使用户所感觉到的内存容量比实际内存容量大得多;或者是让更多的用户程序能并发运行。这样,既满足了用户的需要,改善了系统的性能,又基本上不增加硬件投资。为了 能在逻辑上扩充内存,系统必须具有内存扩充机制,用于实现下述各功能:
(1)请求调入功能
(2)置换功能 

3.设备管理功能

设备管理用于管理计算机系统中所有的外围设备,而设备管理的主要任务是,完成用户进程提出的I/0请求;为用户进程分配其所需的I/0设备;提高CPU和I/0设备的利用率;提高I/0速度;方便用户使用I/0设备。为实现.上述任务,设备管理应具有缓冲管理、设备分配和设备处理,以及虚拟设备等功能。

1.缓冲管理
用于解决CPU运行的高速性和I/0低速性间的矛盾。
2.设备分配

设备分配的基本任务是根据用户进程的I/O请求、系统现有资源情况以及按照某种设
备分配策略,为之分配其所需的设备。
3.设备处理

设备处理程序又称为设备驱动程序。其基本任务是用于实现CPU和设备控制器之间的通信,即由CPU向设备控制器发出I/O命令,要求它完成指定的I/O操作;反之,由CPU接收从控制器发来的中断请求,并给予迅速的响应和相应的处理。

4. 文件管理功能

1.文件存储空间的管理
2.目录管理
3.文件的读/写管理和保护
(1)文件的读/写管理。
(2)文件保护。
实现下述目标:
①防止未经核准的用户存取文件;
②防止冒名顶替存取文件;
③防止以不正确的方式使用文件。

5. 操作系统与用户之间的接口

1.用户接口
它是提供给用户使用的接口,用户可通过该接口取得操作系统的服务;
(1)联机用户接口。
(2)脱机用户接口(批处理用户接口)
(3)图形用户接口。
2.程序接口
它是提供给程序员在编程时使用的接口,是用户程序取得操作系统服务的惟一途径。

6.现代操作系统的新功能

1.系统安全
(1)认证技术; (2) 密码技术; (3)访问控制技术; (4) 反病毒技术
2.网络的功能和服务
(1)网络通信; (2)网络资源管理; (3)应用互操作
3.支持多媒体
(1)接纳控制功能; (2) 实时调度; (3) 多媒体文件的存储

相关文章:

操作系统(1.2)--引论

目录 一、操作系统的基本特性 1.并发性 1.1 并行与并发 1.2 引入进程 2.共享性 2.1 互斥共享方式 2.3 同时访问方式 3.虚拟 3.1 时分复用技术 4. 异 步 二、操作系统的主要功能 1.处理机管理功能 1.1 进程控制 1.2 进程同步 1.3 进程通信 1.4 调度 2. 内…...

【Linux】 shell if的[]和[[]]区别

文章目录[]和test[]和[[]]区别总结参考[]和test Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试 test常用于 if ,作为判断条件,if test等价于 if [ ],因此,test和[] 内的内…...

利用flask解析海康摄像头视频

利用flask解析海康摄像头视频利用flask解析海康摄像头和大华摄像头的视频一、安装依赖包二、获取海康摄像头视频流三、将视频流输出到Web页面四、 创建HTML模板文件利用flask解析海康摄像头和大华摄像头的视频 作为AI智能的一种应用场景,视频监控系统已经在各个行业…...

./docker-compose.yml‘ is invalid

文章目录前言提示原因版本太低解决方法更新删除原来不能执行的/usr/local/bin/docker-compose下载安装docker-compose添加权限前言 安装ctfd过程中的一些报错 rootubuntu:/CTFd# docker-compose up -d ERROR: The Compose file ./docker-compose.yml is invalid because: net…...

Java 流程控制

条件/选择结构 if if(条件表达式){// 表达式为 true 时,执行该代码块 }if(true) {System.out.println("hello"); }if else if(条件表达式){// 表达式为 true 时,执行该代码块 } else {// 表达式为 false 时,执行该代码块 }if(1 …...

边界无限入选首届“网络安全高成长性企业”并荣获“勇创之星”

近日,由工业和信息化部、四川省人民政府主办的“2023年中国网络和数据安全产业高峰论坛网络安全产融合作分论坛”在成都举行,论坛上公布了“2022年度网络安全高成长性企业”名单。云原生安全、应用安全“灵动智御”理念创领者北京边界无限科技有限公司&a…...

SpringBoot项目的快速创建方式(包含第一个程序的运行)

目录 一、IDEA所用的版本以及插件 二、操作步骤 一、IDEA所用的版本以及插件 idea的版本: idea2022版本下载安装配置与卸载详细步骤(包含运行第一个java程序教程)_idea2022下载_云边的快乐猫的博客-CSDN博客 如果英文看不懂就点击&#x1…...

linux下设置定期执行需要root权限的sh文件

1、准备好一个shell文件 比如我这个叫clean.sh,位于/home/admin/gdhysthj/clean.sh 2、首先将shell文件赋权为可执行文件 chmod 777 clean.sh 3、切换为超级管理员 su 4、设置定时器 crontab -u root -e 5、回车后,进入一个类似vim的界面&#xff0c…...

认识异或运算

1.什么是异或运算 异或运算是位运算的一种,符号为:^ 运算规则为:相同为0,不同为1 例如 性质: N ^ 0 N N ^ N 0 A ^ B B ^ A (A ^ B) ^ C A ^ (B ^ C)N ^ 0 N public class XorOperation {public static void …...

内容提供者的简单使用

内容提供者的简单使用 最近在复习ContentProvider时遇到了一些问题,几经波折,终于解决了,故写下这篇博客,希望能帮到有相同问题的兄弟。 何时使用 当我们想要一个应用的数据向外部公开时,ContentProvider是一个不错…...

Modelsim 操作结构和流程

用到的命令一般都写到.do文件中,使用脚本语言进行批量处理。Step 1: Map librariesStep 2: Compile the designStep 3: Optimize the design (OPTIONAL)Step 4: Load the design into the simulatorStep 5: Run the simulationStep 6: Debug the design Note: Desig…...

vue和react有什么不同

vue上手难度低,不过react社区活跃度更多一些,一般数据比较多的大型项目会倾向于使用react。在react官网中,官方也建议我们使用React来构建快速响应的大型 Web 应用程序。vue2.0是面向对象编程({data: {}, methods: {}, created() …...

js求解《初级算法》28. 找出字符串中第一个匹配项的下标

一、题目描述 给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。如果 needle 不是 haystack 的一部分,则返回 -1 。 输入:haystack "sadb…...

VAE--part1

Variational Auto-Encoder, VAE__part1分布变换VAE慢谈VAE 初现分布标准化重参数技巧VAE的本质是什么?VAE的本质结构正态分布?变分在哪里参考博客仅做学习记录,侵删分布变换 VAE和GAN都是生成式模型,它们俩的目标基本一致&#x…...

备战四级!!!

目录 一、替换词 二、作文常见句型 (1)常见开头 (2)阐述观点 (3)结束语 (4)提出建议 (5)表示论证 (6)给出原因 (…...

sizeof与strlen练习

前言 本篇仅仅是为了更加了解sizeof操作符和strlen函数练习. 对于多条sizeof操作符和strlen函数出现,可能很容易造成头脑不清晰,做题时容易混乱. 目录前言一维数组字符数组情况1:情况2情况3二维数组练习之前请牢记下面这段话.这将是头脑清晰地关键. 提示: sizeof(数组名)&#…...

知识图谱的介绍

知识图谱的由来 谷歌在2012年提出了知识图谱的概念,当时目的在于优化搜索引擎的返回结构,为用户提供更精确的结果。 知识图谱的定义 为了理解知识图谱,我们首先要明白信息与知识的概念。首先,信息表示的是外部的客观事实&#…...

【Redis】Redis高级客户端Lettuce详解

文章目录前提Lettuce简介连接Redis定制的连接URI语法基本使用API同步API异步API反应式API发布和订阅事务和批量命令执行Lua脚本执行高可用和分片普通主从模式哨兵模式集群模式动态命令和自定义命令高阶特性配置客户端资源使用连接池几个常见的渐进式删除例子在SpringBoot中使用…...

Qt——自定义界面之QStyle

1. Qt控件结构简介 首先我们要来讲讲GUI控件结构,这里以QComboBox为例: 一个完整的控件由一种或多种GUI元素构成: Complex Control Element。Primitive Element。Control Element。 1.1 Complex Control Element Complex control elements …...

指针和数组面试题(逐题分析,完善你可能遗漏的知识)

人生不是一种享乐,而是一桩十分沉重的工作。 —— 列夫托尔斯泰 前言:之前我们就学习了数组和指针的知识。 数组:数组就是能够存放一组相同类型的元素,数组的大小取决于数组的元素个数和元素类型。 指针:…...

【杂谈】-递归进化:人工智能的自我改进与监管挑战

递归进化:人工智能的自我改进与监管挑战 文章目录 递归进化:人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管?3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...

23-Oracle 23 ai 区块链表(Blockchain Table)

小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...

STM32+rt-thread判断是否联网

一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...

CMake基础:构建流程详解

目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...

高等数学(下)题型笔记(八)空间解析几何与向量代数

目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...

python如何将word的doc另存为docx

将 DOCX 文件另存为 DOCX 格式(Python 实现) 在 Python 中,你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是,.doc 是旧的 Word 格式,而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

Java面试专项一-准备篇

一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如&#xff1a…...

Pinocchio 库详解及其在足式机器人上的应用

Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库,专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性,并提供了一个通用的框架&…...

HDFS分布式存储 zookeeper

hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架,允许使用简单的变成模型跨计算机对大型集群进行分布式处理(1.海量的数据存储 2.海量数据的计算)Hadoop核心组件 hdfs(分布式文件存储系统)&a…...

莫兰迪高级灰总结计划简约商务通用PPT模版

莫兰迪高级灰总结计划简约商务通用PPT模版,莫兰迪调色板清新简约工作汇报PPT模版,莫兰迪时尚风极简设计PPT模版,大学生毕业论文答辩PPT模版,莫兰迪配色总结计划简约商务通用PPT模版,莫兰迪商务汇报PPT模版,…...