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

《操作系统 - 清华大学》1 -2:操作系统概述 —— 什么是操作系统

文章目录

  • 1. 操作系统定义
  • 2. 操作系统的位置
  • 3. 操作系统软件的分类
  • 4. 操作系统软件的组成
  • 5. 操作系统内核特征

现在来继续讲什么是操作系统,操作系统什么样的?它是一个程序,它和其他程序是什么样的关系?然后它有些什么样的组成?它有什么样的特征?那我们首先来看什么是操系统。

1. 操作系统定义

操作系统实际上没有明确的定义,哪些功能算是操作系统里的,哪些功能是应用软件或者说是硬件。实际上随着这个操作系统的发展,操系统内涵实际上是在不断变化的,那我们现在能给操系统一个解释。
在这里插入图片描述

有一种解释说操系统是一个控制程序

  1. 它是一个系统软件,它给用户提供一个运行的环境,用户使用计算机系统的时候,提供所需要的以下服务。

  2. 如果说用户的使用不当,那这时候它需要进行项目的一些错误处理

  3. 如果说用户在使用的过程当中,提供各种服务提供一些协助。比如说你在输入某一条命令的时候,输了半截,忘掉了后边是什么内容,这时候它是不是能给出一些提示。

    这是我们的第一个理解。第二个理解是说操作系统它是一个资源管理器

在这里插入图片描述

  1. 实际上就是说计算机的硬件和应用程序之间用操作系统来作为它的一个中间层
  2. 它为计算机应用程序来管理所有的计算机软硬件资源
  3. 协调于各个应用程序在使用这些资源的时候能够友好地使用资源

具体说起来就是,如果说所有的资源都是由这个应用专用的,那这时候这个应用的使用肯定是没问题的。
~  
但是如果说多个应用程序交替来使用,那这时候资源如何使用就会有一些问题了,比如说像这个内存,你在用我也在用,那这时候到底两个应用它们之间各分配多少呢?
~  
有可能给你分配多了,那给它分配少了,而你的需要又跟这个分配的结果不一致。那这时候对于操作系统来说,就需要做一个高效的判断,来使得在这里能够按照应用程序的需求给它分配合理的资源,这是我们操系统提供的高效使用所要达到的目标。

  1. 然后第二个是说,我们可能都需要很多的资源,那这时候操作系统要负责解决这种需求上的差异,实现它的公平。

2. 操作系统的位置

操作系统的表现形式可能会有多种多样,比如说我们的 Windows,我们的 Linux,它的表现是完全不一样的,但是从操系统的内部结构上来讲,它基本上可以分成这样几个部分:

在这里插入图片描述

操作系统在中间,下边是硬件,上边是应用。应用又可以分成系统应用应用程序

若你想做操作系统,那么是在硬件的基础上来做操作系统,这属于系统设计者

如果是写应用程序的人,或写系统应用的人,那这时候是利用操作系统提供的功能来实现应用程序和系统应用,这属于应用开发者

如果说是一个应用程序的使用者,那么这时候直接使用应用程序,这属于用户。但即使是这样的话,你理解操作系统也有利于你更好的使用计算机系统。

在这里插入图片描述
操作系统实际就是在硬件进行一层隔离,对上边的应用提供通常所见到的逻辑资源。比如说进程、文件、地址空间,这都是在操作系统层面给用户程序看到的情况。

3. 操作系统软件的分类

在这里插入图片描述

操作系统是一个软件,在我们软件划分当中,可以把软件分成是应用软件和系统软件。系统软件又可把它分成系统应用和操作系统。

操作系统里核心的内容是内核,而命令行由于它和操系统内核关系非常密切,把它划到这里头。实际有的时候也会认为它是系统软件里的一个组成部分。

4. 操作系统软件的组成

那我们在操作系统里到底有什么样的组成呢?

在这里插入图片描述
那首先说有内核,实现我们刚才所说到的资源的管理功能。

操作系统上用户可使用命令行接口,这里提供了两种命令接口。一个是命令行接口,这时候用户需要去敲键盘输入命令。

另一种是图形用户接口 GUI,那这时候实际是把命令转换成图形用户接口的一些基本读数。

比如说在这里的窗口、图标、菜单和指针,有了这些之后,去看文件系统的文件的图标,那就对应某个文件,这样的话方便用户来使用,这时达到的效果是所见即所得。

在这里插入图片描述

操作系统和外界关系?实际上用这个图可以很直观地表示出来,操作系统是整个计算机系统里的核心软件,然后在外边构造提供对外接口和一些应用,用户就可以来使用系统所提供的服务,那这是用户所在的位置。

ucore 操作系统提供些什么?
在这里插入图片描述
从下往上,中间两个黄色的部分是操系统的内容,下面是硬件。

硬件中写了几种在ucore 实验里头会涉及到的硬件,串口、磁盘和存储等,这有一个硬件抽象层,把底下这些做屏蔽,提供一个标准的接口。

然后在这里实现操作系统的功能:操作系统功能是各种各样的驱动,串口驱动、磁盘驱动、物理内存的管理等。操作系统内核提供的这些服务:

  1. 信号,在执行一个程序过程中,就可以强行它停下按 ctrl + c;
  2. 提供文件系统,可以把大量的数据以人比较好理解形式组织起来。
  3. 提供虚拟存储,提供虚拟存储之后,用户就可以使用到大于物理内存的存储空间;
  4. 提供处理机调度,就可以在一台机器上让多个应用程序交替运行;

提供这些服务都封装在系统调用接口之上,通过系统调用接口,上层应用(如系统库、编译器、解释器和命令行)利用系统调用和库提供的功能来实现应用功能。

5. 操作系统内核特征

操系统软件和应用程序之间有什么样的差别呢?也就说操系统内核它有什么样特征?
在这里插入图片描述

这里列出来的是操系统所具有的四个特征,并发、共享、虚拟和异步
在这里插入图片描述

  1. 并发是指操作系统当中有多个正在运行的应用程序,需要操作系统的管理和调度。

如果多个应用程序交替运行,需要知道当前每一个应用都执行到什么位置,当前正在执行的是哪个应用?
~  
如果说应用之间有切换的时候,那切换到下一个应用的时候,它上次执行到什么位置?那这次从什么地方开始?当时的状态是什么样子?都要操作系统来维护。

在这里插入图片描述

  1. 第二特征是共享是指多个应用并发运行的时候,宏观上要体现出它们同时在访问资源的情况,而微观上要实现它们互斥访问。

比如说内存,两个应用同时访问内存,那这时候每个应用需要知道它访问的是哪个,它俩之间不能访问错了。需要保护的这些内存资源不能让另外应用去访问。
~  
而在微观上,这时候需要对它做很好的这种隔离。在数据总线上任何一个时刻只有一个应用去访问这个存储单元,这就是我们所说的微观上的互斥。

在这里插入图片描述

  1. 然后再一个是虚拟是指要通过交替运行使每一个用户感觉到整个计算机都是由它一个用户在专门为它提供服务。那如何做到这一点?

实际上就是由操系统在每个应用执行的时候交替运行,由于交替的频率非常高,让用户在用的时候感觉不太出来,那这台机器还有其他用户在用。
~  
当然这里的这个负载大的应用程度,用户是可以感觉到的。

在这里插入图片描述

  1. 再有一个是异步是指由于程序是走走停停的,所以它的行为是不可预测。

    实际上需要由操作系统来提供,只要用户的输入是一致的,那么它的输出结果就应该是不变的。

    当然如果说你的那个应用就是需要知道跟时间相关的这种走走停停的信息,那也是可以在操作系统的支持之下,发现这种时间上的差异。

相关文章:

《操作系统 - 清华大学》1 -2:操作系统概述 —— 什么是操作系统

文章目录 1. 操作系统定义2. 操作系统的位置3. 操作系统软件的分类4. 操作系统软件的组成5. 操作系统内核特征 现在来继续讲什么是操作系统,操作系统什么样的?它是一个程序,它和其他程序是什么样的关系?然后它有些什么样的组成&am…...

power bi制作各季度收入累加柱状图——日期表、calculate、datesytd

一、数据介绍: 2017-2019年订单销售收入数据(订单日期,销售收入) 二、效果展示: 三、操作步骤: 1、建立日期表 (1)建立原因 本次度量值编写需要运用到datesytd这一时间智能函数…...

OceanBase 3.X 高可用 (一)

OceanBase 3.X 高可用(一) 一、分布式核心 OceanBase 3.x 采用的是paxos 协议,与raft协议相比。其复杂程度高,实现技术难度大。 Paxos 协议允许事务日志乱序发送,顺序提交。raft允许事务顺序发送,顺序提…...

CSR、SSR、SSG

客户端渲染(Client-Side Rendering, CSR)在SEO方面存在一些不利因素,主要原因包括: 初始加载内容的缺乏:CSR依赖于JavaScript来动态生成页面内容。当搜索引擎爬虫访问一个使用CSR技术构建的网站时,它们最初…...

linux -L16-linux 查看应用占用的资源top

linux 查看应用占用的资源top Targetsteps启动 top 命令排序进程:查看特定进程:过滤进程其他常用选项交互式帮助 Target linux 查看应用占用的资源top steps 在 Linux 系统中,top 命令是一个非常有用的工具,它提供了一个实时更…...

QT——多线程操作

一、单线程和多线程的区别 单线程指的是程序在执行时只有一个流程,也就是一次只能执行一个任务。当程序中某个任务需要花费大量时间时,单线程会导致整个程序阻塞,用户体验会变差。 多线程则是指程序在执行时可以同时执行多个任务,每个任务都是一个独立的线程。多线程可以…...

理解C语言之深入理解指针(三)

目录 1. 字符指针变量 2. 数组指针变量 2.1 数组指针变量是什么? 2.2 数组指针变量怎么初始化 3. ⼆维数组传参的本质 4. 函数指针变量 4.1 函数指针变量的创建 4.2 函数指针变量的使⽤ 4.3 两段有趣的代码 4.3.1 typedef 关键字 5. 函数指针数组 6. 转移…...

「芯片知识」MP3解码ic方案,音乐芯片在数字音频中的作用

MP3解码芯片是一种由内部晶振器组成的简单语音电路,将这种独特的MP3音乐芯片与其他零件进行接驳,便能够形成一个完整的语音集成电路。而深受顾客欢迎的MP3音乐芯片现如今已经广泛的使用在电子玩具和家用电器等众多的场合之中,它在数字音频中扮…...

MyBatis与 Springboot 的集成

MyBatis 是一个优秀的持久层框架,专注于 SQL 语句的灵活控制,与 Spring Boot 集成可以简化数据库操作,提升开发效率。Spring Boot 提供了与 MyBatis 无缝集成的支持,使得 MyBatis 可以轻松与 Spring Boot 应用结合使用。 一、MyB…...

迁移学习和外推关系

**迁移学习(Transfer Learning)和外推(Extrapolation)**都是机器学习中处理新数据的一种方式,但它们的定义、应用场景和挑战有所不同。让我们来对比两者并探讨它们的关系。 定义 迁移学习(Transfer Learni…...

小程序-生命周期与WXS脚本

生命周期 什么是生命周期 生命周期(Life Cycle)是指一个对象从创建 -> 运行 -> 销毁的整个阶段,强调的是一个时间段。 我们可以把每个小程序运行的过程,也概括为生命周期: 小程序的启动,表示生命…...

828华为云征文 | 云服务器Flexus X实例,Docker集成搭建FC-web模拟器

828华为云征文 | 云服务器Flexus X实例,Docker集成搭建FC-web模拟器 华为云端口放行 服务器放行对应端口9995 Docker安装并配置镜像加速 1、购买华为云 Flexus X 实例 Flexus云服务器X实例-华为云 (huaweicloud.com) 2、docker安装 yum install -y docker-ce3、验证…...

_RET_IP_ 和_THIS_IP_ 作用

在Linux内核中,有两个罕见的宏定义_RET_IP_ 和_THIS_IP_。但是这两个宏在内核代码中又时不时的出现,那么它们到底是什么含义呢? 1、宏定义 我们先看它们的宏定义 include./linux/kernel.h#define _RET_IP_ (unsigned long)__builtin_return_address(0)#define …...

Spring Boot 点餐系统:高效餐饮服务

第二章关键技术的研究 2.1相关技术 网上点餐系统是在Java MySQL开发环境的基础上开发的。Java是一种服务器端脚本语言,易于学习,实用且面向用户。全球超过35%的Java驱动的互联网站点使用Java。MySQL是一个数据库管理系统,因为它的…...

RtspServer:轻量级RTSP服务器和推流器

文章目录 项目概述技术分析支持的编码格式传输方式心跳检测机制RTSP 推流安全性 架构分析RtspServer 整体架构流程分析1. 客户端连接和会话建立2. 媒体数据传输3. 心跳检测和连接维护 xop 基础库项目介绍功能特性xop 整体架构 应用场景社区问题收集与解答问题一:刚开…...

为什么结构化 Prompt 如此有效?

你好,我是三桥君 在今年,我研究了结构化编写Prompt的方法,并观察到这种结构化、模板化的Prompt能够有效地突破ChatGPT 3.5的限制,实现所谓的“越狱”。然而,为什么ChatGPT会对这种结构化Prompt如此有效呢?…...

无人机飞手培训校企合作特训技术详解

随着无人机技术的飞速发展,其在航拍、农业、测绘、救援等多个领域的应用日益广泛,市场对高素质无人机飞手的需求急剧增加。为满足这一需求,促进教育与产业深度融合,无人机飞手培训校企合作模式应运而生。本文将从确定合作目标、共…...

从零开始的软件开发详解:数字药店系统源码与医保购药APP

很多小伙伴们疑问,医保购药APP是如何开发的,今天我将从零数字药店系统源码开始为大家提供一条清晰的实现方案。 一、技术架构设计 在开发医保购药APP之前,首先需要明确技术架构。一般来说,APP的技术架构可以分为前端和后端。 1…...

【记录】在返回值类型为BigDecimal情况下末尾小数位为0的会省略不显示

【问题】:在返回值类型为BigDecimal情况下末尾小数位为0的会省略不显示 问题复现: 实体类 package com.zlp.aspect.entity;import java.math.BigDecimal;/*** program: my_utils* description:* author: zlp* create: 2024-09-24 10:01**/public clas…...

通信工程高级职称评审条件详细解读

通信工程只有正高和副高级别的职称,中级通信工程的职称是需要自己参加考试的,并不是评审获得,这个大家需要注意一下,先要考取中级通信工程师之后才能评审副高和正高级通信工程的职称。 下面跟甘建二一起来看看通信专业职称评审条件…...

【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器

一.自适应梯度算法Adagrad概述 Adagrad(Adaptive Gradient Algorithm)是一种自适应学习率的优化算法,由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率,适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...

模型参数、模型存储精度、参数与显存

模型参数量衡量单位 M:百万(Million) B:十亿(Billion) 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的,但是一个参数所表示多少字节不一定,需要看这个参数以什么…...

【Linux】C语言执行shell指令

在C语言中执行Shell指令 在C语言中&#xff0c;有几种方法可以执行Shell指令&#xff1a; 1. 使用system()函数 这是最简单的方法&#xff0c;包含在stdlib.h头文件中&#xff1a; #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...

STM32F4基本定时器使用和原理详解

STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...

【磁盘】每天掌握一个Linux命令 - iostat

目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat&#xff08;I/O Statistics&#xff09;是Linux系统下用于监视系统输入输出设备和CPU使…...

关于 WASM:1. WASM 基础原理

一、WASM 简介 1.1 WebAssembly 是什么&#xff1f; WebAssembly&#xff08;WASM&#xff09; 是一种能在现代浏览器中高效运行的二进制指令格式&#xff0c;它不是传统的编程语言&#xff0c;而是一种 低级字节码格式&#xff0c;可由高级语言&#xff08;如 C、C、Rust&am…...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建

华为云FlexusDeepSeek征文&#xff5c;DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色&#xff0c;华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型&#xff0c;能助力我们轻松驾驭 DeepSeek-V3/R1&#xff0c;本文中将分享如何…...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制

在数字化浪潮席卷全球的今天&#xff0c;数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具&#xff0c;在大规模数据获取中发挥着关键作用。然而&#xff0c;传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时&#xff0c;常出现数据质…...

【生成模型】视频生成论文调研

工作清单 上游应用方向&#xff1a;控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...

JavaScript基础-API 和 Web API

在学习JavaScript的过程中&#xff0c;理解API&#xff08;应用程序接口&#xff09;和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能&#xff0c;使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...