408——操作系统(持续更新)
文章目录
- 一、操作系统的概念及特征
- 1.1 计算机系统的概念
- 1.2 操作系统的基本特征
- 二、操作系统的功能和接口
- 2.1 操作系统作为计算机资源的管理者
- 2.2 操作系统作为用户和计算机硬件系统之间的接口
- 2.3 操作系统实现对计算机资源的扩充
- 三、操作系统的发展和分类
- 四、操作系统的运行环境
- 4.1 用户态和内核态
- 4.2 特权指令和非特权指令
- 4.3 状态切换
- 4.4 中断和异常
- 4.5 系统调用
一、操作系统的概念及特征
1.1 计算机系统的概念
- 计算机系统由软件和硬件两部分组成;
- 硬件:有形的物理设备,如CPU、GPU、存储器等;
- 软件:完成一定任务的程序及数据,包括系统软件和应用软件。系统软件包括操作系统、编译程序、编辑程序、数据库管理系统等;应用软件是为各种应用目的而编制的程序。
- 计算机系统自上而下大致分为4部分:硬件、操作系统、应用程序和用户。
- 操作系统的概念
- 操作系统是配置在计算机硬件上的第一层软件,是计算机系统资源的管理者,位于硬件和其他软件之间,是所有其他软件的运行基础;
- 操作系统是指控制和管理整个计算机系统的硬件和软件资源,合理地组织、调度计算机的工作和资源分配,进而为用户和其他软件提供方便接口与环境的程序集合,是计算机系统中最基础的系统软件。
1.2 操作系统的基本特征
- 并发:指两个或多个事件在同一时间间隔内发生,宏观上看是同时发生,微观是交替发生。
- 区别:并行是指系统具有同时进行运算或操作的特性,在同一时刻能完成两种或两种以上的工作。
- 单核和多核:
- 单核:单核同一时刻只能执行一个程序,所以各个程序只能并发的执行;
- 多核:多核中多个程序可以并行的执行。
- 单核和多核:
- 区别:并行是指系统具有同时进行运算或操作的特性,在同一时刻能完成两种或两种以上的工作。
- 共享:即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。资源共享是支持并发性的基础,为了支持进程的并发执行,操作系统必须有效地控制并发进程对资源地共享。
- 互斥共享方式:系统中的某些资源在一段时间内只允许一个进程访问,进程之间互斥地共享这些资源,如打印机、磁带机等;
- 同时共享方式:一个时间段内允许多个进程同时对某些资源进行访问。这里所谓的“同时”往往是宏观上的,而在微观上,这些进程可能是交替地对该资源进行访问,即“分时共享”。典型地可供多个进程“同时”访问的资源是磁盘。
- 虚拟:虚拟性是指操作系统的一种管理技术,它把物理上的一个实体变为逻辑上的多个对应体,或者吧物理上的多个实体变为逻辑上的一个对应体,物理实体是实的,即实际存在的;而逻辑上是虚的,是用户感觉上的事物。操作系统中利用连多种虚拟技术,例如CPU的分时核虚拟存储器等,用分时使用一个处理器,它能同时为多个用户服务,使每个终端用户都感觉有一个中央处理器(CPU)在专门为自己服务。类似地,虚拟存储器是将一台机器的物理存储器变为虚拟存储器,以便从逻辑上来扩充存储器的容量,当然,这时用户所感觉到的内存容量是虚的。
- 异步:异步性也称随机性,由于系统资源的共享,有限的资源使并发进程之间产生相互制约的关系,系统中的各个进程何时执行、何时暂停以及以怎样的速度向前推进、什么时候完 成等哦都是不可预知的,这种特性被称为计算机的异步性。
>注意:并发和共享式操作系统的两个最基本的特征,这两者之间又是互为存在条件的:一方面,资源共享是以程序的并发为条件,若系统不允许程序并发执行,则自然不存在资源共享问题;另一方面,若系统不能对资源共享实施有效的管理,也必将影响到程序的并发执行,甚至根本无法并发执行。
二、操作系统的功能和接口
2.1 操作系统作为计算机资源的管理者
- 处理机管理:在多道程序环境下,处理机的分配和运行都是以进程为单位的,因而对处理机的管理可归纳为对进程的管理。进程管理的主要功能包括:进程控制、进程同步、进程通信、死锁处理、处理机调度等;
- 存储器管理:存储器管理是为了给多道程序的运行提供良好的环境,主要包括内存分配与回收、地址映射、内存保护与共享和内存扩充等。
- 文件管理:负责文件管理的部分成为文件系统。文件管理包括文件存储空间的管理、目录管理及文件读写管理和保护等。
- 设备管理:设备管理的主要任务是完成用户的请求,方便用户使用各种设备,包括缓冲管理、设备分配、设备处理和虚拟设备等。
2.2 操作系统作为用户和计算机硬件系统之间的接口
- 命令接口:按作业控制方式不同,命令接口分为联机命令接口和脱机命令接口。
- 联机命令接口:又称为交互式命令接口,适用于分时或实时系统的接口。它由一组键盘操作命令组成,用户通过控制台或终端输入命令,向系统提出各种服务请求。用户每输入一条命令,控制权就转给操作系统的命令解释程序,然后由命令解释程序解释并执行输入的命令,完成指定的功能之后,控制权转回控制台或终端,此时用户又可以输入下一条命令。
- 脱机命令接口:又称为批处理命令接口,适用于批处理系统,它是由一组作业控制命令组成。脱机用户不能直接干预作业的运行,而应事先用相应的作业控制命令写成一分作业操作说明书,连同作业一起提交给系统。系统调度到该作业时,由系统中的命令解释器逐条解释执行作业说明书上的命令,从而间接地控制作业的运行。
向上层提交服务(重点):给软件或程序员提供程序接口,操作系统有两种接口:命令输入和系统调用。命令输入分为命令行和图形用户界面。
2.3 操作系统实现对计算机资源的扩充
没有任何软件支持的计算机称为裸机,它仅构成计算机系统的物质基础,而实际呈现在用户面前的计算机系统是经过若干层软件改造的计算机。裸机在最里层,其外面的操作系统。我们将覆盖软件的机器称为扩充机器或虚拟机。
三、操作系统的发展和分类
- 无操作系统的计算机系统
脱机输入/输出方式:事先将装有用户程序和数据的纸带(或卡片)装入纸带输入机(或卡片机),在一台外围机的控制下,将纸带(卡片)上的数据(程序)输入磁盘上。当CPU需要这些程序和数据时,再从磁盘上将其高速调入内存。 - 批处理系统(操作系统开始出现)
- 单道批处理系统:最早出现的一种OS。
- 多道批处理系统:后备队列。
- 分时操作系统
多个用户通过终端同时共享一台主机,这些终端连接在主机上,用户可以同时与主机进行交互操作而互不干扰。它采用分时技术,所谓分时技术就是把处理器的运行时间分成很短的时间片,按时间片轮流把处理器分配给各联机作业使用。 - 实时操作系统
虽然分时操作系统较好地解决了人机交互问题,但在一些应用场合,需要系统能对外部的信息在规定时间内(比时间片的时间还短)做出处理(如订购机票系统、导弹制导系统),因此,实时操作系统应运而生。
四、操作系统的运行环境
4.1 用户态和内核态
用户态和内核态是为了确保系统正常运行,防止用户程序破坏操作系统而引入的CPU的两种运行模式。
- 内核态:运行在状态下的代码,可以无限制地对系统存储、外部设备进程访问;
- 用户态:指非特权的执行状态,内核禁止在此状态下的代码执行潜在危险的操作,如写入系统配置文件、杀掉其他用户的进程、重启系统等。
4.2 特权指令和非特权指令
系统将CPU的指令集划分为特权指令和非特权指令。
- 特权执行:特权指令关系到系统全局的指令,如存取和操作CPU状态、启动各种外部设备、设置时钟时间、关中断、清主存、修改存储器管理寄存器、改变用户方式道核心方式和停机指令等。
- 非特权执行:允许用户直接使用,它不能直接访问系统中的软硬件资源,仅限于访问用户的地址空间。
在核心态,CPU只能执行操作系统程序,允许执行处理及的全部指令集(包括特权指令和非特权指令),可以访问和管理主存的全部空间;在用户态下,CPU执行用户程序,而且只允许执行处理机上的非特权指令。
4.3 状态切换
在内核态下CPU可执行任意指令,在用户态下CPU只能执行非特权指令。当CPU处于内核态,可以随意进入用户态;而当CPU处于用户态时,用户从用户态切换到内核态只能在系统调用和终端两种情况下发生,一般程序一开始都是运行在用户态,当程序需要使用系统资源时,就必须通过调用软中断进入内核态。
- 系统调用:用户程序执行到系统调用命令时,CPU的执行状态由硬件自动从用户态切换到内核态,执行操作系统中相应的系统调用子程序。系统调用程序执行完成后,CPU在返回用户程序执行前,切换到用户态,之后执行用户程序,从而达到系统保护的目的。
- 中断:用户程序运行过程中发送了外界中断,CPU响应中断,它的执行状态也由用户态转换为内核态,执行相应的中断处理程序,中断处理完,通常CPU再返回道用户程序执行前将其切换到用户态,继续执行用户程序。
4.4 中断和异常
- 中断:也称外中断,指当出现需要时,CPU暂时停止当前程序的执行转而执行处理新情况的程序的执行过程。即在程序运行过程中,系统出现一个必须由CPU立即处理的情况,此时CPU暂时中止程序的执行转而处理这个新的情况的过程叫中断。
- 异常:也称内中断或陷入,指源自CPU执行指令内部的事件,如程序的非法操作码、地址越界、算术溢出、虚存系统的缺页以及专门的陷入指令等引起的事件。对异常的处理一般要依赖于当前程序的运行现场,而且异常不能被屏蔽,一旦出现应立即处理。
发生中断意味着需要操作系统介入开展管理工作。
- 用户态到核心态:中断或系统调用;
- 核心态到用户态:执行特权指令,将程序状态字的标志位设置为“用户态”。
4.5 系统调用
系统调用是由操作系统实现的程序接口或应用编程接口(API)的集合,是应用程序同系统之间的接口。内核提供一些列具备预定功能的多内核函数,通过系统调用的接口呈现给用户。应用程序通过系统调用把请求传给内核,调用相应的内核函数完成所需的处理,然后系统调用再将处理结果返回给应用程序。系统中的各种共享资源都由操作系统统一掌管,因此在用户程序中,凡是与资源相关的操作(如存储分配、I/O传输及管理文件等)都必须通过系统调用方式向操作系统提出服务请求。
相关文章:
408——操作系统(持续更新)
文章目录 一、操作系统的概念及特征1.1 计算机系统的概念1.2 操作系统的基本特征 二、操作系统的功能和接口2.1 操作系统作为计算机资源的管理者2.2 操作系统作为用户和计算机硬件系统之间的接口2.3 操作系统实现对计算机资源的扩充 三、操作系统的发展和分类四、操作系统的运行…...
架构师之路-学渣到学霸历程-37
Nginx的热部署实验 本次分享的就是nginx的升级以及降级,实验中其实很多操作都需要理解,实际操作不难,但是需要全面理解这个动作,敲这个命令是用来干什么的?借着这个笔记可以试一下;go~! 1、ng…...

CSRF与SSRF
csrf(跨站请求伪造)的原理: csrf全称是跨站请求伪造(cross-site request forgery),也被称为one-click attack 或者 session riding scrf攻击利用网站对于用户网页浏览器的信任,劫持用户当前已登录的web应用程序,去执行分用户本意的操作。 利…...

RabbitMQ 存储机制
一、消息存储机制 不管是持久化的消息还是非持久化的消息都可以被写入到磁盘。持久化的消息在到达队列时就被写入到磁盘,非持久化的消息一般只保存在内存中,在内存吃紧的时候会被换入到磁盘中,以节省内存空间。这两种类型的消息的落盘处理都…...
【Java SE】类型转换
类型转换是将一个值从一种类型转换为另一种类型的过程。该过程如果从低精度数据类型转为高精度数据类型,则不会发生溢出并且总能成功,如果从高精度数据类型转为低精度数据类型,则会有信息丢失且可能失败。类型转换又可分为隐式转换和显式转换…...

JAVA:常见 JSON 库的技术详解
1、简述 在现代应用开发中,JSON(JavaScript Object Notation)已成为数据交换的标准格式。Java 提供了多种方式将对象转换为 JSON 或从 JSON 转换为对象,常见的库包括 Jackson、Gson 和 org.json。本文将介绍几种常用的 JSON 处理…...
Redis缓存击穿、雪崩、穿透解决方案
Redis 缓存击穿、雪崩、穿透解决方案 1、首先看看逻辑方面是否还有优化空间,正常流程查询redis中获取不到数据,则去数据库获取,但数据库查询并返回时,调用异步方法,将该数据存储进redis中,并设置一个较短的…...

C++ 优先算法——盛最多水的容器(双指针)
目录 题目:盛最多水的容器 1. 题目解析 2. 算法原理 3. 代码实现 题目:盛最多水的容器 1. 题目解析 题目截图: 如图所示: 水的高度一定是由较低的那条线的高度决定的:例1图中,是由7决定的,然后求出…...

blender 小车建模 建模 学习笔记
一、学习blender视频教程链接 案例4:狂奔的小车_建模_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1Bt4y1E7qn?p14&spm_id_from333.788.videopod.episodes&vd_sourced0ea58f1127eed138a4ba5421c577eb1 二、开始建模 (1)创…...
导出列表数据到Excel并下载
Java导出查询到的数据列表为Excel并下载 1.背景 工作中经常有需求,需要把列表的数据导出为Excel并下载。EasyExcel工具可以很好的实现这一需求。 2.实现流程 1.引入EasyExcel依赖包 <dependency><groupId>com.alibaba</groupId><artifactId…...

基于NVIDIA NIM平台实现盲人过马路的demo(一)
前言:利用NVIDIA NIM平台提供的大模型进行编辑,通过llama-3.2-90b-vision-instruct模型进行初步的图片检测 step1: 部署大模型到本地,引用所需要的库 import os import requests import base64 import cv2 import time from datetime import datetimestep2: 观看官方使用文…...

美格智能5G车规级通信模组:以连接+算力驱动智能化进阶
2023年3月,基于高通公司第二代骁龙汽车5G调制解调器及射频系统平台SA522M/SA525M,美格智能在德国纽伦堡嵌入式系统展上正式发布全新一代5G车规级C-V2X通信模组MA922系列,迅速引起行业和市场关注。随着5G高速网联逐步成为智能汽车标配…...

[MRCTF2020]PYWebsite1
如果输入的密钥是对的那么我们就直接跳转到flag.php页面 那么我们直接访问😎,他不带我们去我们自己去. 那就用XFF呗. 知识点: 定义:X-Forwarded-For是一个HTTP请求头字段,用于识别通过HTTP代理或负载均衡方式连接到W…...
无源元器件-磁珠选型参数总结
🏡《总目录》 目录 1,概述2,磁珠选型参数2.1,电学参数2.1.3,阻抗(Impedance)2.1.2,额定电流(Rated Current)2.1.3,直流电阻(DC Resistance)2.2,机械性能参数2.2.1,外观和尺寸(Appearance and Dimensions)2.2.2,粘接强度( Bonding Strength)2.2.3,弯曲强度…...

宝顶白芽,慢生活的味觉盛宴
在快节奏的生活中,人们愈发向往那种悠然自得、返璞归真的生活方式。白茶,以其独特的韵味和清雅的风格,成为了现代人追求心灵宁静与生活品质的象征。而在众多白茶之中,竹叶青茶业出品的宝顶白芽以其甘甜醇爽的特质,成为…...
已知三角形三边长求面积用仓颉语言作答
仓颉语言 https://cangjie-lang.cn/ linux和win和mac均有sdk,在本机deepinlinuxv23下载到本地解压缩到目录下设置环境变量 source envsetup.sh 比java方便太多了,java每次都是要自己搞很久,当然,打开看一下envsertup.sh,和我们…...
【JavaScript】匿名函数及回调函数总结
JavaScript 匿名函数 匿名函数没有显式的名称, 被视为一个函数表达式,可以在不需要额外命名的情况下进行定义和使用, 通常被用作回调函数, 即将函数作为参数传递给其他函数。 回调函数是在特定事件或条件发生时被调用的函数,回调函数通常用于异步编程中…...

HTML鼠标移动的波浪线动画——页面将会初始化一个Canvas元素,并使用JavaScript代码在Canvas上绘制响应鼠标移动的波浪线动画
代码如下 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Wave Animation</title><style&…...

树莓派开发相关知识八-其他传感器
1、蜂鸣器 #!/usr/bin/env python #coding:utf-8import RPi.GPIO as GPIO import time OUT5 def init():GPIO.setwarnings(False)GPIO.setmode(GPIO.BCM)GPIO.setup(OUT,GPIO.OUT)#蜂鸣器鸣叫函数 def beep(seconds):GPIO.output(OUT,GPIO.HIGH)time.sleep(seconds)GPIO.output…...

ComfyUI - ComfyUI 工作流中集成 SAM2 + GroundingDINO 处理图像与视频 教程
欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/143359538 免责声明:本文来源于个人知识与公开资料,仅用于学术交流,欢迎讨论,不支持转载。 SAM2 与…...
Spring Boot 实现流式响应(兼容 2.7.x)
在实际开发中,我们可能会遇到一些流式数据处理的场景,比如接收来自上游接口的 Server-Sent Events(SSE) 或 流式 JSON 内容,并将其原样中转给前端页面或客户端。这种情况下,传统的 RestTemplate 缓存机制会…...
什么是EULA和DPA
文章目录 EULA(End User License Agreement)DPA(Data Protection Agreement)一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA(End User License Agreement) 定义: EULA即…...
《C++ 模板》
目录 函数模板 类模板 非类型模板参数 模板特化 函数模板特化 类模板的特化 模板,就像一个模具,里面可以将不同类型的材料做成一个形状,其分为函数模板和类模板。 函数模板 函数模板可以简化函数重载的代码。格式:templa…...
虚拟电厂发展三大趋势:市场化、技术主导、车网互联
市场化:从政策驱动到多元盈利 政策全面赋能 2025年4月,国家发改委、能源局发布《关于加快推进虚拟电厂发展的指导意见》,首次明确虚拟电厂为“独立市场主体”,提出硬性目标:2027年全国调节能力≥2000万千瓦࿰…...

【C++进阶篇】智能指针
C内存管理终极指南:智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...
Redis:现代应用开发的高效内存数据存储利器
一、Redis的起源与发展 Redis最初由意大利程序员Salvatore Sanfilippo在2009年开发,其初衷是为了满足他自己的一个项目需求,即需要一个高性能的键值存储系统来解决传统数据库在高并发场景下的性能瓶颈。随着项目的开源,Redis凭借其简单易用、…...

[ACTF2020 新生赛]Include 1(php://filter伪协议)
题目 做法 启动靶机,点进去 点进去 查看URL,有 ?fileflag.php说明存在文件包含,原理是php://filter 协议 当它与包含函数结合时,php://filter流会被当作php文件执行。 用php://filter加编码,能让PHP把文件内容…...
Bean 作用域有哪些?如何答出技术深度?
导语: Spring 面试绕不开 Bean 的作用域问题,这是面试官考察候选人对 Spring 框架理解深度的常见方式。本文将围绕“Spring 中的 Bean 作用域”展开,结合典型面试题及实战场景,帮你厘清重点,打破模板式回答,…...

手机平板能效生态设计指令EU 2023/1670标准解读
手机平板能效生态设计指令EU 2023/1670标准解读 以下是针对欧盟《手机和平板电脑生态设计法规》(EU) 2023/1670 的核心解读,综合法规核心要求、最新修正及企业合规要点: 一、法规背景与目标 生效与强制时间 发布于2023年8月31日(OJ公报&…...
HTML前端开发:JavaScript 获取元素方法详解
作为前端开发者,高效获取 DOM 元素是必备技能。以下是 JS 中核心的获取元素方法,分为两大系列: 一、getElementBy... 系列 传统方法,直接通过 DOM 接口访问,返回动态集合(元素变化会实时更新)。…...