1.1 操作系统的基本概念

文章目录

  • 操作系统的概念(定义)
  • 操作系统的目标和功能
    • 操作系统作为计算机系统资源的管理者
    • 操作系统向上层提供方便易用的服务
      • 命令接口
      • 程序接口
    • 操作系统作为最接近硬件的层次
  • 操作系统的特征(4个)
    • 并发
    • 共享
      • 互斥共享方式
      • 同时共享方式
    • 虚拟
      • 虚拟处理器(时分复用技术)
      • 虚拟存储器(空分复用技术)
    • 异步
  • 小结(本节思维导图)

操作系统的概念(定义)

计算机系统自下而上可大致分为4部分:硬件操作系统应用程序用户(这里的划分与计算机组成原理中的分层不同)

在这里插入图片描述

操作系统(Operating System, OS)是指①控制和管理整个计算机系统的硬件与软件资源,合理地组织、调度计算机的工作与资源的分配,②进而为用户和其他软件提供方便接口与环境的程序集合,③操作系统是计算机系统中最基本的系统软件

操作系统的目标和功能

从操作系统的定义可以归纳出:

  1. 操作系统是系统资源的管理者

    直观的例子:打开 Windows 操作系统的 “任务管理器”

    在这里插入图片描述

  2. 操作系统要向上层提供方便易用的服务

  3. 操作系统是最接近硬件的一层软件

操作系统作为计算机系统资源的管理者

作为系统资源的管理者,需要提供的功能有:

  1. 文件管理

    计算机中的信息都是以文件的形式存在的,操作系统中负责文件管理的部分称为文件系统,文件管理包括文件存储空间的管理、目录管理及文件读写管理和保护等

  2. 存储器管理

    存储器管理是为了给多道程序的运行提供良好的环境,方便用户使用及提高内存的利用率, 主要包括内存分配与回收、地址映射、内存保护与共享和内存扩充等功能

  3. 处理机管理

    在多道程序环境下,处理机的分配和运行都以进程(或线程)为基本单位,因而对处理机的管理可归结为对进程的管理。并发是指在计算机内同时运行多个进程,因此进程何时创建、何时撤销、如何管理、如何避免冲突、合理共享就是进程管理的最主要的任务。进程管理的主要功能包括进程控制、进程同步、进程通信、死锁处理、处理机调度等

  4. 设备管理

    设备管理的主要任务是完成用户的I/O请求,方便用户使用各种设备,并提高设备的利用率,主要包括缓冲管理、设备分配、设备处理和虚拟设备等功能

【计算机操作系统的重点就在于操作系统作为系统资源的管理者,要如何设计和实现以上功能】

举例说明:使用QQ进行视频聊天

  • Step1:在各个文件夹中找到QQ安装的位置(如 D:/Tencent/QQ/Bin)

    ➡️文件管理功能:逐层打开文件夹,找到QQ.exe这个程序(可执行文件)的存放位置

  • Step2:双击打开 QQ.exe

    ➡️存储器管理功能:需要把该程序相关数据放入内存
    (补充知识:执行一个程序前需要将该程序放到内存中,才能被CPU处理)

  • Step3:QQ 程序正常运行

    ➡️处理机管理功能:对应的进程被处理机(CPU)处理

  • Step4:开始和朋友视频聊天

    ➡️需要将摄像头、麦克风等设备分配给进程

(这些工作都由"工人"负责,"雇主”无须关注)

操作系统向上层提供方便易用的服务

为了让用户方便、快捷、可靠地操纵计算机硬件并运行自己的程序,操作系统还提供了用户接口

操作系统提供的接口主要分为两类:
一类是命令接口用户利用这些操作命令来组织和控制作业的执行;
另一类是程序接口编程人员可以使用它们来请求操作系统服务

操作系统向上层提供方便易用的服务体现的是封装思想,操作系统把一些对用户不友好的硬件功能封装成简单易用的服务,使用户能更方便地使用计算机,用户无需关心底层硬件的原理,只需要对操作系统发出命令即可

命令接口

使用命令接口进行作业控制的主要方式有两种,即联机控制方式和脱机控制方式
按作业控制方式的不同,可将命令接口分为联机命令接口和脱机命令接口

  • 联机命令接口

    联机命令接口又称交互式命令接口,适用于分时或实时系统的接口

    特点:用户说一句,系统跟着做一句
    (“雇主”说一句话,"工人”做一件事,并做出反馈,这就强调了交互性)

  • 脱机命令接口

    脱机命令接口又称批处理命令接口,适用于批处理系统,它由一组作业控制命令组成

    特点:用户说一堆,系统跟着做一堆
    (雇主”把要"工人”做的事写在清单上,"工人”按照清单命令逐条完成这些事,这就是批处理)

程序接口

程序接口:可以在程序中进行系统调用来使用程序接口(普通用户不能直接使用程序接口,只能通过程序代码间接实用)

操作系统作为最接近硬件的层次

操作系统作为最接近硬件的层次的目标:实现对硬件机器的拓展

没有任何软件支持的计算机称为裸机,在裸机上安装的操作系统,可以提供的资源管理功能和方便用户的各种服务功能,将裸机改造成功能更强、使用更方便的机器

通常把覆盖了软件的机器称为扩充机器虚拟机

操作系统对硬件机器的拓展:将CPU、内存、磁盘、显示器、键盘等硬件合理地组织起来,让各种硬件能够相互协调配合,实现更多更复杂的功能
("工人”操作机器,机器就有更大的作用,于是“工人”便成了 “扩充机器”)

操作系统的特征(4个)

并发

并发是指两个或多个事件在同一时间间隔内发生

注意:区分并发并行
并发:两个或多个事件在同一时间间隔内发生,这些事件宏观上是同时发生的,但微观上是交替发生
并行:两个或多个事件在同一时刻同时发生

操作系统的并发性是指计算机系统中 “同时” 存在多个运行的程序,这些程序宏观上是同时运行的,但微观上是交替运行的
操作系统就是伴随着 “多道程序技术” 而出现的,因此操作系统和程序并发是一起诞生的

注意(重点)
单核CPU同一时刻只能执行一个程序,各程序只能并发地执行
多核CPU同一时刻可以同时执行多个程序,多个程序可以并行地执行

比如一个4核CPU就可以并行地执行4个程序,但是只要有4个以上的程序需要“同时”运行,那么并发性依然是必不可少的

因此,并发性是操作系统一个最基本的特征

共享

共享即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用
从共享的定义来看:
如果失去并发性,则系统只会有一个程序正在运行,那么共享性失去存在意义
如果失去共享性,那么不同程序不能同时访问硬盘资源,并发性就无法被实现
所以,并发性和共享性互为存在条件

共享可分为互斥共享方式同时共享方式两种资源共享方式

互斥共享方式

系统中的某些资源,虽然可以提供给多个进程使用,但是一个时间段内只允许一个进程访问该资源
如打印机、磁带机等

同时共享方式

系统中的某些资源,允许一个时间段内有多个进程“同时”对他们进行访问
(这里所说的“同时”通常是宏观上的,而在微观上,这些进程可能是交替地对该资源进行访问即“分时共享"的)
如磁盘设备等

虚拟

虚拟是指把一个物理上的实体变为若干逻辑上的对应物
物理实体(前者)是实的,即实际存在的;而后者是虚的,是用户感觉上的事物

操作系统的虚拟技术可归纳为:①时分复用技术,如处理器的分时共享(虚拟处理器);②空分复用技术, 如虚拟存储器

虚拟处理器(时分复用技术)

虚拟处理器技术是通过多道程序设计技术,采用让多道程序并发执行的方法,来分时使用一个处理器的。此时,虽然只有一个处理器,但它能同时为多个用户服务,使每个终端用户都感觉有一个中央处理器(CPU)在专门为它服务。利用多道程序设计技术把一个物理上的CPU虚拟为多个逻辑上的CPU,称为虚拟处理器

显然,如果失去了并发性,则一个时间段内系统只需运行一道程序,就失去了实现虚拟性的意义,因此没有并发性就谈不上虚拟性

虚拟存储器(空分复用技术)

虚拟存储器技术将一台机器的物理存储器变为虚拟存储器,以便从逻辑上扩充存储器的容量。当然,这时用户所感觉到的内存容量是虚的。我们把用户感觉到(但实际不存在)的存储器称为虚拟存储器

异步

多道程序环境允许多个程序并发执行,并发运行的程序会争抢着使用系统资源,但由于资源有限,进程的执行并不是一贯到底的,而是走走停停的,它以不可预知的速度向前推进,这就是进程的异步性

小结(本节思维导图)

在这里插入图片描述


【计算机操作系统】 专栏的文章 均有参考 《王道计算机考研 操作系统》 课程视频

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

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

相关文章

【性能优化】在大批量数据下使用 HTML+CSS实现走马灯,防止页面卡顿(二)

上一篇只是简单演示了’下一张’的操作和整体的设计思路,这两天把剩余功能补全了,代码经过精简,可封装当成轮播组件使用,详细如下. 代码 <template><div class"container"><button click"checkNext(last)">上一张</button><b…

Vue Router基础

Router 的作用是在单页应用&#xff08;SPA&#xff09;中将浏览器的URL和用户看到的内容绑定起来。当用户在浏览不同页面时&#xff0c;URL会随之更新&#xff0c;但页面不需要从服务器重新加载。 1 Router 基础 RouterView RouterView 用于渲染当前URL路径对应的路由组件。…

Linux--Socket编程预备

目录 1. 理解源 IP 地址和目的 IP 地址 2.端口号 2.1端口号(port)是传输层协议的内容 2.2端口号范围划分 2.3理解 "端口号" 和 "进程 ID" 2.4理解 socket 3.传输层的典型代表 3.1认识 TCP 协议 3.2认识 UDP 协议 4. 网络字节序 5. socket 编程接…

边缘计算网关项目(含上报进程、32Modbus采集进程、设备搜索响应进程源码)

目录 边缘层 架构说明 包含知识点 数据上报进程 功能描述 功能开发 上报线程 数据存储线程 指令处理线程 项目源码 上报模块.c代码&#xff1a; 上报模块Makefile代码&#xff1a; STM32采集模块.c代码 设备搜索响应模块Linux部分.c代码 设备搜索响应模块Qt端代码.h …

流量录制与回放:jvm-sandbox-repeater工具详解

在软件开发和测试过程中&#xff0c;流量录制与回放是一个非常重要的环节&#xff0c;它可以帮助开发者验证系统在特定条件下的行为是否符合预期。本文将详细介绍一款强大的流量录制回放工具——jvm-sandbox-repeater&#xff0c;以及如何利用它来提高软件测试的效率和质量。 …

《Cross-Modal Dynamic Transfer Learning for Multimodal Emotion Recognition》

Multi-modal系列论文研读目录 文章目录 Multi-modal系列论文研读目录1.ABSTRACT2.INDEX TERMS3.INTRODUCTION4.RELATED WORKSA. MULTIMODAL EMOTION RECOGNITION 多模态情感识别1) CONVENTIONAL FUSION METHODS 常规融合方法2) TRANSFORMER-BASED FUSION METHODS 基于变压器的融…

C#测试控制台程序调用Quartz.NET的基本用法

Quartz.Net是常用的任务调用框架之一&#xff0c;既能在客户端程序中使用&#xff0c;也支持在网页程序后台调用。本文结合参考文献4中的示例代码学习其在控制台程序中的基本用法。   VS2022新建控制台项目&#xff0c;在Nuget包管理器中搜索并安装Quartz包&#xff0c;如下所…

IDEA在编译的时候报Error: java: 找不到符号符号: 变量 log lombok失效问题

错误描述 idea因为lombok的报错: java: You arent using a compiler supported by lombok, so lombok will not work and has been disabled.Your processor is: com.sun.proxy.$Proxy8Lombok supports: sun/apple javac 1.6, ECJ 原因&#xff1a;这是由于Lombok的版本过低的…

若依 ruoyi poi Excel合并行的导入

本文仅针对文字相关的合并做了处理 &#xff0c;图片合并及保存需要另做处理&#xff01;&#xff01; 目标&#xff1a;Excel合并行内容的导入 结果&#xff1a; 1. ExcelUtil.java 类&#xff0c;新增方法&#xff1a;判断是否是合并行 /*** 新增 合并行相关代码&#xff1a;…

matlab 绘制参数方程

matlab 绘制参数方程 绘制参数方程绘制结果 绘制参数方程 clc; clear; close all;axis_length 100;% 定义参数t的范围 t 0:0.01:100;% 计算x和y的值 x t.^2 1; y 4*t - t.^2;% 绘制函数图像 plot(x, y); xlabel(x); ylabel(y); title(Plot of the curve xt^21, y4t-t^2…

Uprecise软件的基本功能

UPrecise 是和芯星通独立开发的评估软件&#xff0c; 旨在帮助用户便捷地对公司产品进行可视化操作。 用户可通过该软件以串口或端口的方式与接收机进行交互并直观地查看其状态信息&#xff0c;连接后 UPrecise 将自动识别接收机的波特率和类型&#xff0c;动态显示该类型接收机…

Python3网络爬虫开发实战(2)爬虫基础库

文章目录 一、urllib1. urlparse 实现 URL 的识别和分段2. urlunparse 用于构造 URL3. urljoin 用于两个链接的拼接4. urlencode 将 params 字典序列化为 params 字符串5. parse_qs 和 parse_qsl 用于将 params 字符串反序列化为 params 字典或列表6. quote 和 unquote 对 URL的…

FastAPI(七十三)实战开发《在线课程学习系统》接口开发-- 回复留言

源码见&#xff1a;"fastapi_study_road-learning_system_online_courses: fastapi框架实战之--在线课程学习系统" 之前文章分享FastAPI&#xff08;七十二&#xff09;实战开发《在线课程学习系统》接口开发-- 留言列表开发&#xff0c;这次我们分享如何回复留言 按…

Layui修改表格分页为英文

Layui修改表格分页为英文 1.前言2.Laypage属性 1.前言 主要记录初次使用Layui没有好好看官方文档踩坑&#xff0c;修改了源码才发现可以自定义 使用的Layui版本2.9.14 2.Laypage属性 Laypage属性中带的有自定义文本的属性 示例代码 table.render({.......page: {skipText: …

Linux:传输层(1) -- UDP协议

1. 端口号 同一台主机的不同端口号(Port)标记了主机上不同的进程&#xff0c;如下图所示&#xff1a; 在 TCP/IP 协议中 , 用 " 源IP", "源端口号", "目的IP", "目的端口号", "协议号" 这样一个五元组来标识一个通信 ( 可…

QT开发(QT的基本概述和环境的安装)

QT的概述 一.QT的介绍背景1.1 什么是QT1.2QT的发展史1.3 Qt支持的平台1.4QT版本1.5QT的优点1.6QT的应用场景 二.搭建QT开发环境2.1 QT的开发工具的下载2.2 QT环境变量配置 三.QT的三种基类四.QT Hello World程序4.1使用按钮实现4.1.1 代码方式实现4.1.2 可视化操作实现 一.QT的…

GO内存分配详解

文章目录 GO内存分配详解一. 物理内存(Physical Memory)和虚拟内存(Virtual Memory)二. 内存分配器三. TCMalloc线程内存(thread memory)页堆(page heap)四. Go内存分配器mspanmcachemcentralmheap五. 对象分配流程六. Go虚拟内存ArenaGO内存分配详解 这篇文章中我将抽丝剥茧,…

基于STM32瑞士军刀--【FreeRTOS开发】学习笔记(一)|| RISC / 底层代码执行步骤 / 汇编指令

本篇文章基于韦东山老师讲课笔记和自己理解编写。 RISC ARM芯片属于精简指令集计算机(RISC&#xff1a;Reduced Instruction Set Computing)&#xff0c;它所用的指令比较简单&#xff0c;有如下特点&#xff1a; ① 对内存只有读、写指令 ② 对于数据的运算是在CPU内部实现 …

2024.7.24 作业

1.二叉树的创建、遍历自己实现一遍 bitree.h #ifndef BITREE_H #define BITREE_H#include <myhead.h>typedef char datatype;typedef struct Node {datatype data;struct Node *left_child;struct Node *right_child; }Node,*BiTreePtr;//创建二叉树 BiTreePtr tree_cr…

MinerU、Magic-PDF、Magic-Doc

文章目录 一、关于 MinerU二、Magic-PDF1、简介2、项目全景3、流程图4、子模块仓库 三、Magic-PDF 上手指南1、配置要求2、安装配置1. 安装Magic-PDF2. 下载模型权重文件3. 拷贝配置文件并进行配置4. 使用CUDA或MPS加速推理CUDAMPS 3、使用说明1) 通过命令行使用直接使用更多用…