操作系统学习笔记---计算机系统概述
目录
概念
功能和目标
特征
并发
共享(资源共享)
虚拟
异步
发展与分类
手工操作阶段(无OS)
批处理阶段
单道批处理系统
多道批处理系统
分时操作系统
实时操作系统
网络操作系统
分布式计算机系统
个人计算机操作系统
操作系统运行环境
内核态和用户态
特权和非特权指令
状态切换
中断
中断机制的基本原理
系统调用
按功能分类
过程
操作系统体系结构
分层法
模块化
宏内核(单内核/大内核)
微内核
外核
操作系统的引导
虚拟机
编辑
概念
操作系统(OS)是指控制和管理整个计算机系统的硬件与软件资源,合理地组织、调度计算机的工作与资源分配,进而为用户与其他软件提供方便接口与环境的程序集合。操作系统是计算机系统中最基本的系统软件
功能和目标
1.操作系统是资源的管理者
处理机管理、存储器管理、文件管理、设备管理、用户接口管理
2.操作系统作为用户与计算机硬件系统之间的接口
- 命名接口:联机命令接口(交互式命令接口)、脱机命令接口(批处理命令接口)
- 程序接口(广义指令)
3.操作系统实现了对计算机资源的扩充
特征
并发
若干事件在同一时间间隔内发生。操作系统的并行性是指计算机系统中同时存在多个运行的程序,因此它具有处理和调度多个程序同时执行的能力
ps:单核cpu同一时刻只能执行一个程序,各个程序只能并发执行
共享(资源共享)
系统中的资源可供内存中多个并发执行的进程共同使用。分为以下两种方式;
- 互斥共享方式:系统中的某些资源,在一段时间内只允许一个进程访问改资源
- 同时访问方式:系统中的某些资源,在一段时间内允许多个进程“同时”访问
虚拟
把一个物理上的实体变为若干逻辑上的对应物。物理实体是实际存在的,后者则是用户感觉上的事物
异步
多道程序环境允许多个程序并发执行,但由于资源有限,进程的执行并不是一贯到底的,而是走走停停的,它以不可预知的速度向前推进,这就是进程的异步性。
ps:并发和共享是操作系统两个最基本的条件
发展与分类
手工操作阶段(无OS)
主要缺点:
- 用户独占,资源利用率低
- CPU等待手工操作,CPU的利用不充分
批处理阶段
单道批处理系统
- 主要优点:缓解了一定程度的人机速度矛盾,资源利用率有所提升
- 主要缺点:每次主机内存仅存放一道作业,每当它在运行期间发出输入/输出请求后,高速CPU便处于等待低速I/O完成的状态,资源利用率依然低
多道批处理系统
- 主要优点:多道程序并发执行,共享计算机资源。资源利用率大幅提升,系统吞吐量大。
- 主要缺点:用户响应时间较长;不提供人机交互功能,用户既不能了解自己的程序的运行情况,又不能控制计算机
分时操作系统
- 分时技术:把处理器的运行时间分成很短的时间片,按时间片轮流把处理器分配给各联机作业使用
- 主要优点:用户请求可以被及时响应,解决了人机交互问题。允许多个用户访问同一台计算机,并且用户对计算机操作独立
- 主要缺点:不能优先处理紧急的任务,需时间片排队
实时操作系统
为了能在某个时间限制内完成某些紧急任务而不需要时间片排队,诞生了实时操作系统
- 硬实时操作系统:必须在规定的时刻发生
- 软实时操作系统:能接受偶尔违反时间规定
网络操作系统
网络中各种资源的共享及各台计算机之间的通信
分布式计算机系统
主要特点是分布性和并行性。系统中的任意台计算机都可以构成一个子系统,并且还能重构;任何工作都可以分布在几台计算机上,由它们并行工作、协同完成。
个人计算机操作系统
是目前使用最广泛的操作系统。如:Windows、Linux、MacOS
ps:操作系统的基本类型主要有:批处理操作系统、分时操作系统、实时操作系统
操作系统运行环境
内核态和用户态
- CPU有两种状态:内核态、用户态
- 处于内核态时,执行操作系统的内核程序,此时可以执行特权指令
- 处于用户态时,执行操作系统的用户自编程序(应用程序),此时只能执行非特权指令
ps:内核包含四大内容:时钟管理、中断机制、原语、系统控制的数据结构及处理
特权和非特权指令
- 特权指令:不允许用户直接使用的指令,如I/O指令、置中断指令等
- 非特权指令:允许用户直接使用的指令,不能直接访问系统中的软硬件资源
程序状态字寄存器(PSW):当PSW置0时CPU处于核心态,当PSW置1时CPU处于用户态
状态切换
内核态切换到用户态:执行一条特权指令--修改PSW的标志位为用户态,操作系统主动让出CPU使用权
用户态切换到内核态:由“中断”引发,硬件自动完成变态过程,触发信号中断意味着操作系统强行夺回CPU的使用权
中断
内中断(异常、例外):和当前执行指令有关,中断信号来源于CPU内部
外中断:和当前执行指令无关,中断信号来源于CPU外部
中断机制的基本原理
不同的中断信号,需要不同的中断处理程序处理。当CPU检测到中断信号后,会根据中断信号的类型去查询“中断向量表”,以此来查找相应的中断处理程序在内存中的位置
系统调用
概念:是操作系统提供给应用程序(程序员/编程人员)来使用的接口,可以理解为一种可供应用程序调用的特殊函数。
ps:应用程序可通过系统调用来请求获得操作系统内核的服务
按功能分类
- 设备管理:完成设备的请求和释放,以及设备启动等功能。
- 文件管理:完成文件的读、写、创建及删除等功能
- 进程控制:完成进程的创建、撤销、阻塞及唤醒等功能
- 进程通信:完成进程之间的消息传递或信号传递等功能
- 内存管理:完成内存的分配、回收以及获取作业占用内存区大小及始址等功能
过程
传递系统调用参数- >执行陷入指令(用户态)- >执行相应的内请求核程序处理系统调用(核心态)- >返回应用程序
操作系统体系结构
分层法
概念:分层法是将操作系统分成若干层,最底层(层0)为硬件,最高层为用户接口,每层只能调用紧邻它的低层的功能和服务。
优点:
- 便于调试和验证,自底向上逐层调试验证
- 易扩充和易维护,各层之间调用接口清晰固定
缺点:
- 仅可调用相邻低层,难以合理定义各层的边界
- 效率低,不可跨层调用,系统调用执行时间长
模块化
概念:模块化是将操作系统按功能划分为若干具有一定独立性的模块。每个模块具有某方面的管理功能,并规定好各模块间的接口,使各模块之间能够通过接口进行通信。
- 内核=主模块+可加载内核模块
- 主模块:只负费核心功能,如进程调度、内存管理
- 可加载内核模块:可以动态加载新模块到内核,而无需重新编译整个内核
优点:
- 模块间逻辑清晰易于维护,确定模块间接口后即可多模块同时开发
- 支持动态加载新的内核模块(如:设备驱动程序),增强OS适应性
- 任何模块都可以直接调用其他模块,无需采用消息传递进行通信,效率高
缺点:
- 模块间的接口定义末必合理、实用
- 模块间相互依赖,更难调试和验证
宏内核(单内核/大内核)
概念:将系统的主要功能模块都作为一个紧密联系的整体运行在核心态,从而为用户程序提供高性能的系统服务
优点:性能高,内核内部各种功能都可以直接相互调用
缺点:
- 内核庞大功能复杂,难以维护
- 大内核中某个功能模块出错,就可能导致整个系统崩溃
微内核
概念:将内核中最基本的功能保留在内核,而将那些不需要在核心态执行的功能移到用户态执行,从而降低内核的设计复杂性
优点:
- 内核小功能少、易于维护,内核可靠性高
- 內核外的某个功能模块出错不会导致整个系統崩溃
缺点:
- 性能低,需要频繁的切换用户态/核心态。
- 用户态下的各功能模块不可以直接相互调用,只能通过内核的"消息传道"来间接通信
外核
概念:内核负费进程调度、 进程通信等功能,外核负责为用户进程分配未经抽象的硬件资源,且由外核负责保证资源使用安全
优点:
- 外核可直接给用户进程分配“不虚拟、不抽象”的硬件资源,使用户进程可以更灵活的使用硬件资源
- 减少了虚拟硬件资源的“映射层",提升效率
缺点:
- 降低了系統的一致性
- 使系统变得更复杂
操作系统的引导
概念:操作系统引导是指计算机利用CPU运行特定程序,通过程序识别硬盘分区,识别硬盘分区上的操作系统,最后通过程序启动操作系统。
过程:
- CPU从一个特定主存地址开始,取指令,执行ROM中的引导程序(先进行硬件自检,再开机)
- 将磁盘的第一块一一主引导记录 读入内存,执行磁盘引导程序,扫描分区表
- 从活动分区(又称主分区,即安装了操作系统的分区)读入分区引导记录,执行其中的程序
- 从根目录下找到完整的操作系统初始化程序(即启动管理器)并执行,完成 “开机”的一系列动作
虚拟机
概念:使用虚拟化技术,将一台物理机器虚拟化为多台虚拟机器,每台虚拟机器都可以独立运行一个操作系统
ps:图片取自b站视频王道考研 -操作系统
相关文章:
操作系统学习笔记---计算机系统概述
目录 概念 功能和目标 特征 并发 共享(资源共享) 虚拟 异步 发展与分类 手工操作阶段(无OS) 批处理阶段 单道批处理系统 多道批处理系统 分时操作系统 实时操作系统 网络操作系统 分布式计算机系统 个人计算机操…...
uniapp H5 navigateBack无法返回上一层级
项目场景: 提交表单后需要返回上一级 原因分析: H5在PC端打开,当前页面重新加载的情况下,出现navigateBack不能返回,由于H5端页面刷新后返回页面栈会消失 //提交 const handleSubmit async () > {form.value?.a…...
Android性能优化之应用瘦身(APK瘦身)
关于作者:CSDN内容合伙人、技术专家, 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 ,擅长java后端、移动开发、人工智能等,希望大家多多支持。 目录 一、导读二、概览2.1 apk组成 三、优化方向3.1 源代码3.1.1 代码混…...
C语言数组和指针笔试题(二)(一定要看)
目录 字符数组二例题1例题2例题3例题4例题5例题6例题7总结 字符数组三例题1例题2例题3例题4例题5例题6例题7 字符数组二 char arr[] {a,b,c,d,e,f} 1:printf("%d\n", strlen(arr)); 2:printf("%d\n", strlen(arr0)); 3:printf("%d\n", strlen(…...
uniapp——实现在线选座功能——技能提升
首先声明一点:下面的内容是从一个uniapp的程序中摘录的,并非本人所写,先做记录,以免后续遇到相似需求抓耳挠腮。 这里写目录标题 效果图代码——html部分cu-custom组件anil-seat组件 代码——jscss部分 效果图 代码——html部分 …...
领域驱动设计:微服务的各种边界
文章目录 演进式架构微服务还是小单体?微服务边界的作用 在用 DDD 进行微服务设计时,我们可以通过事件风暴来确定领域模型边界,划定微服务边界,定义业务和系统运行边界,从而保证微服务的单一职责和随需而变的架构演进能…...
MySQL之数据类型
目录 一、MySQL数据类型分类 二、数值类型 1、整数类型 2、bit类型 3、小数类型 三、字符串类型 1、char 2、varchar 3、char和varchar比较 四、日期和时间类型 五、enum和set 一、MySQL数据类型分类 MySQL 数据类型可以大致分为以下三类: 数值类型:用于…...
词法作用域改变词法作用域
一、词法作用域 1.定义: 为什么叫词法作用域?因为大部分标准语言编译器的第一个工作阶段叫作词法化,词法化的过程会对源代码中的字符进行检查,如果是有状态的解析过程,还会赋予单词语义。 简单来说࿰…...
关于C++的隐藏 (hidden),重载(overload),重写(override)小结。
关于隐藏 (hidden) 假如继承以后,子类出现父类同名函数, 即使参数的形式不同, 也会导致父类的函数隐藏, 不参与函数匹配,不能使用。 这个链接讲的不错。https://zhuanlan.zhihu.com/p/575423511 #include <iostrea…...
算法通关村18关 | 透析回溯的模板
回溯有清晰的解题模板, void backtracking(参数){if (终止条件){存放结果;return;}for (选择本层中的集合元素(画成树,就是树节点孩子的大小) {处理节点;backtracking();回溯,撤销处理结果;}} 1. 从N叉树说起 在回溯之前&#x…...
【论文阅读】Untargeted Backdoor Attack Against Object Detection(针对目标检测的无目标后门攻击)
文章目录 一.论文信息二.论文内容0.摘要1.论文概述2.背景介绍3.作者贡献4.重点图表 一.论文信息 论文题目: Untargeted Backdoor Attack Against Object Detection(针对目标检测的无目标后门攻击) 发表年份: 2023-ICASSP&#x…...
分库分表---理论
目录 一、垂直切分 1、垂直分库 2、垂直分表 3、垂直切分优缺点 二、水平切分 1、水平分库 2、水平分表 3、水平切分优缺点 三、数据分片规则 1、Hash取模分表 2、数值Range分表 3、一致性Hash算法 四、分库分表带来的问题 1、分布式事务问题 2、跨节点关联查询…...
[golang 流媒体在线直播系统] 2.搭建基于golang的流媒体服务器实现拉流推流,以及Html客户端拉取hls类型的流
一.使用 Go 语言的开源框架Livego搭建流媒体服务器 1.Livego 框架的介绍 Go 语言拥有强大的 服务器性能 ,golang 在语言级别解决了 多进程并发 的问题,支持 多核 CPU均衡使用 ,支持 海量轻量级线程 ,所以非常适合做 流媒体服务器 .而 livego 是基于golang 开发的简单高效的…...
9月12日作业
作业代码 #include <iostream>using namespace std;class Shape { protected:double cir;double area; public://无参构造Shape() {cout<<"无参构造"<<endl;}//有参构造Shape(double c, double a):cir(c), area(a){cout<<"有参构造&quo…...
React框架下如何集成H.265网页流媒体视频播放器EasyPlayer.js?
H5无插件流媒体播放器EasyPlayer属于一款高效、精炼、稳定且免费的流媒体播放器,可支持多种流媒体协议播放,可支持H.264与H.265编码格式,性能稳定、播放流畅,能支持WebSocket-FLV、HTTP-FLV,HLS(m3u8&#…...
《向量数据库》——向量数据库的使用场景有哪些?
向量数据库在许多应用领域都有广泛的用途,特别是那些需要存储、检索和分析向量数据的场景。以下是一些常见的向量数据库使用场景: 1、相似性搜索: 推荐系统:用于根据用户的历史行为或兴趣,搜索相似用户或物品,以提供个性化推荐。图像检索:允许用户通过图像查询相似的图像…...
Java 中 List 集合取补集
交集 Intersection 英 [ˌɪntəˈsekʃn] 并集 Union 英 [ˈjuːniən] 差集 difference of set 补集 complement set 英 [ˈkɒmplɪment] Java 中 List 集合取交集 Java 中 List 集合取并集 Java 中 List 集合取差集 Java 中 List 集合取补集 # 求两个集合交集的补集 List&l…...
我的个人网站——宏夏Coding上线啦
网站地址:宏夏Coding Github地址:🔥🔥宏夏coding网站,致力于为编程学习者、互联网求职者提供最需要的内容!网站内容包括求职秘籍,葵花宝典(学习笔记),资源推…...
【机器视觉】喇叭的外圆以及金属内圆的同心度视觉检测--康耐德智能
客户的需求 检测内容 喇叭的外圆以及金属内圆的同心度测量 检测要求 精度0.02mm,速度没要求,抽检产品。 评估 视觉可行性分析 对贵司的样品进行了光学实验,并进行图像处理,原则上可以使用机器视觉进行测试测量。 结果 对所有样…...
STM32WB55开发(2)----修改蓝牙地址
STM32WB55开发----2.修改蓝牙地址 概述硬件准备视频教学样品申请完整代码下载选择芯片型号配置时钟源配置时钟树RTC时钟配置查看开启STM32_WPAN条件配置HSEM配置IPCC配置RTC启动RF开启蓝牙设置工程信息工程文件设置修改置BLE设备公共地址Ble_Hci_Gap_Gatt_Init结果演示 概述 在…...
【1++的C++进阶】之C++11(二)
👍作者主页:进击的1 🤩 专栏链接:【1的C进阶】 文章目录 一,类的新变化二,可变参数模板三,lambda表达式 一,类的新变化 在C03之前,我们的默认成员函数有6个,…...
【VS2022】调试
F9 创建或取消断点 ctrlF9 禁用断点 F5 开始调试(到断点处停下来) F10 逐过程(不进入函数) F11 逐语句 F5、F10、F11都可以直接进入调试 【调试】->【窗口】->【监视】,输入变量就可以观察到变量的值。 …...
python:使用RESTful API(flask)调用python程序传递参数,实现Web端调用python程序
问题描述 现有一个用python写的程序(或者是一个或几个的函数接口),需要在Web前端调用python写的函数。如果直接用前端java来调用会很不方便,而且会出现各种麻烦的问题,下面给出如何在web前端调用python的接口。 解决…...
贪心算法(Greedy Algorithm)
贪心算法(Greedy Algorithm)是一种解决优化问题的算法策略。在贪心算法中,每一步都会选择当前情况下最优的选择,而不考虑未来的后果。 贪心算法的基本思想是通过局部最优选择达到全局最优。它并不保证一定能得到全局最优解&#…...
论文阅读 - Outlier detection in social networks leveraging community structure
目录 摘要 1. Introduction 2. Related works 3. Preliminaries 3.1. 模块化度量 3.2. Classes of outliers 3.2.1. 点异常 3.2.2. Contextual anomalies 3.2.3. Collective anomalies 3.3. Problem definition 3.4. Outliers score 4. Methodology 4.1. Proposed appr…...
【操作系统】进程控制
进程控制:创建新进程,撤销已有进程,实现进程状态转换等。 原语:进程控制用的程序段。执行期间不允许中断,用"关中断"和"开中断"指令(特权指令)实…...
Linux命令200例:expr一个用于进行数值表达式求值的工具
🏆作者简介,黑夜开发者,CSDN领军人物,全栈领域优质创作者✌。CSDN专家博主,阿里云社区专家博主,2023年6月csdn上海赛道top4。 🏆数年电商行业从业经验,历任核心研发工程师࿰…...
当你的公司突然开始大量的裁员,被留下的你,真的准备好面对以后了吗?
留下来的,也是迷茫的 最近公司突然开始大量裁员,裁了一多半,作为唯一留下的APP 端开发人员,也开始陷入了焦虑,开始了思考,未来究竟何去何从,是否再去转到原生,从事原生的开发工作&a…...
预约陪诊就诊小程序源码多城市开发版
陪诊小程序多城市版开发 小程序支持多城市开通,支持创建陪诊团队以及提成奖励设置,可以定义多种服务类型,订单流程简单明了,支持陪诊师手机端订单处理,家政类目可以轻松过审。 小程序市场前景: 人口老龄化…...
upload-labs文件上传靶场实操
文章目录 1.Pass-012.Pass-023.Pass-034.Pass-045.Pass-056.Pass-067.Pass-078.Pass-089.Pass-0910.Pass-1011.Pass-1112.Pass-1213.Pass-1314.Pass-1415.Pass-1516.Pass-16 1.Pass-01 改后缀名绕过 只能上传图片,先上传一个jpg格式的图片,然后抓包改格…...
企业网站管理系统如何使用说明/最新域名ip地址
题目:原题链接(中等) 标签:字符串 解法时间复杂度空间复杂度执行用时Ans 1 (Python)O(N)O(N)O(N)O(1)O(1)O(1)36ms ( 79.64%)Ans 2 (Python)Ans 3 (Python) 解法一: class Solution:def removeVowels(self, S: str)…...
省建设厅网站6/保定百度seo公司
福建省高等院校学生计算机应用水平等级考试.doc (7页)本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!9.90 积分福建省高等院校学生计算机应用水平等级考试一级(计算机应用基础)考试大纲(一…...
宁波seo博客/优化的定义
目录 1.安装NVIDIA驱动 1.1下载驱动 1.2卸载原来的 1.3禁用nouveau驱动 1.4禁用X-Window服务 1.5命令行安装 1.6测试 2.安装cuda 2.1下载cuda 2.2安装 2.3环境变量配置 2.4测试 3.安装cudnn 3.1下载cudnn 3.2安装 3.3下载runtime library,developer library,cod…...
做网站一屏一屏的/厦门百度开户
OOP即Object-Oriented Programming(面向对象程序设计)就是选用面向对象的程序设计语言(Object-Oriented Programming Language,OOPL),采用对象,类及其相关概念所进行的程序设计。 对面向对象的理解本身是无止境的&…...
网站建设的好处论文/seo优化师
提要光线在图形学中可以简单地用向量来表示:r(t) o td, o表示光线的出发点,d表示光线的方向,通常是单位向量,r表示光线在t时刻的位置。光线求交在图形学中有着非常重要的应用,比如Global Illumination,collision det…...
软件工程毕业可以做网站吗/淘宝推广平台
如何使用dropdownlist绑定数据库?首先我们要了解一些dropdownlist的一些属性。 DataSource:为数据源 DataBind:数据源绑定 DataTextField:要显示的文本值 DataValueField:显示文本值的编号 其中DataTextField主要是给用户看的,我们…...