<王道操作系统第1集>1.1.1~1.3.1

会持续更新

王道操作系统课程B站笔记

一 操作系统(Operating System OS)概念

操作系统 : 是指控制和管理整个计算机系统的硬件和软件资源 并合理的组织调度计算机的工作和资源的分配 以提供给用户和其他软件方便的接口和环境

它是计算机系统中最基本的系统软件

1.厂家组装一台操作系统裸机(包含CPU 内存 硬盘 主板)

2.出售前安装windows操作系统

3.用户安装应用程序

4.用户使用QQ

联机命令接口==交互式命令接口

用户说一句 系统说一句(Linux命令)

脱机命令接口==批处理命令接口

执行一堆命令 系统一条一条的执行一堆的命令

程序接口

eg:

在写C语言"Hello World"程序时 在printf函数的底层就使用了操作系统提供的显式相关的"系统调用"

操作系统的特征

并发

并发 : 指两个或多个事件在同一时间间隔内发生(这些时间宏观上式同时发生的 但微观上式交替发生的)

并行

并行 : 指两个或多个事件在同一时刻同时发生

并行 VS 并发

并发 在微观上是交替发生

并行 同时发生

注意:

在单核CPU中 同一时刻只能执行一个程序 各个程序只能并发的执行
多核CPU中 同一时刻可以同时执行多个程序 多个程序可以并行的执行
eg:

Intel第八代i3处理器就是4核CPU,意味着可以并行的运行4个程序

即使是对于4核的CPU来说,只要有4个以上的程序需要"同时"运行,那么并发性是必不可少的,因此并发性是操作系统一个最基本的特征

共享

共享 : 即资源共享,是指系统中的资源可供内存中多个并发的进程共同使用

两种资源共享方式

互斥共享方式

互斥共享方式 : 系统中的某些资源,虽然可以提供给多个进程使用,但一个时间段只允许一个进程访问该资源

eg:

使用QQ和微信视频,同一时间段内,摄像头只能分配给其中一个进程

同时共享方式

同时共享方式 : 系统中的某些资源,允许一个时间段内多个进程"同时"对它们进行访问

eg:

使用QQ发送文件A,同时使用微信发送文件B,宏观上看,两边都在同时读取并发送文件.

说明两个进程都在访问硬盘资源,从中读取数据.微观上看,两个进程时交替进行着访问硬盘的

并发性 && 共享性

并发性 : 在同一个时间段内,多个任务交替进行,通过快速切换的方式,让用户感觉是多个任务同时进行
共享性 : 多个线程/进程/程序,能够访问和使用同一个资源的能力,整个资源可以是硬件,内存数据,文件,网络端口...

用一个例子理解 并发性&&共享性

使用QQ发送文件A,同时使用WX发送文件B

1.两个进程正在并发执行(并发性)

2.需要共享的访问硬盘资源(共享性)

如果失去并发性,系统就只能有一个程序正在运行,共享性就没有意义

如果失去共享性,那么QQ和WX就不能同时访问硬件资源,就无法实现同时发送文件,也就无法并发

虚拟

虚拟是指把一个在物理上的实体变为若干个逻辑上的对应物
背景知识:一个程序需要放入内存并给它分配CPU才能执行

问题:既然一个程序需要分配CPU才能正常运行,那么为什么单核CPU的电脑能同时运行这么多程序?

答 : 这是虚拟处理器技术,实际上只有一个单核CPU,在用户看来似乎由很多CPU在为主机服务

虚拟技术

包括:空分复用技术(如 虚拟存储器技术)

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

异步

异步 : 在多道程序环境下,允许多个程序并发执行,但是由于资源有限,进程的执行不是一步到底的,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性

重要理解

并行和共享互为存在条件

名誉并发和共享,就谈不上虚拟和异步,因此,并发和共享式操作系统的两个最基本的特征

操作系统的发展和分类

不感兴趣

操作系统的运行机制

预备知识 : 程序是怎么执行的

内核程序 VS 应用程序

我们普通程序员写的程序就是应用程序

微软,苹果有一帮人负责实现操作系统,他们写的是内核程序,由很多内核程序组成了"操作系统内核",简称内核(Kernel)

内核是操作系统最重要最核心的部分,也是在接近硬件的部分

内核态(核心态/管态) && 用户态(目态)

CPU有两种状态 : 内核态 和 用户态

CPU处于内核态时,说明此时正在运行的是内核程序,此时可以执行特权指令
CPU处于用户态时,说明此时正在运行的是应用程序,此时只能执行非特权指令

拓展 : CPU中有一个寄存器叫做程序状态字寄存器,其中有一个二进制位,1表示内核态,0表示用户态

相关推荐
bodybo4 小时前
搭建内网穿透服务器NPS
笔记
强子感冒了5 小时前
Java IO流学习笔记:从字节流到字符流
java·笔记·学习
saoys13 小时前
Opencv 学习笔记:图像掩膜操作(精准提取指定区域像素)
笔记·opencv·学习
电子小白12314 小时前
第13期PCB layout工程师初级培训-1-EDA软件的通用设置
笔记·嵌入式硬件·学习·pcb·layout
clorisqqq16 小时前
人工智能现代方法笔记 第1章 绪论(1/2)
人工智能·笔记
charlie11451419116 小时前
嵌入式现代C++教程: 构造函数优化:初始化列表 vs 成员赋值
开发语言·c++·笔记·学习·嵌入式·现代c++
wdfk_prog17 小时前
[Linux]学习笔记系列 -- [fs]seq_file
linux·笔记·学习
liuchangng17 小时前
Open-AutoGLM部署运行笔记
笔记
君心似砂17 小时前
很久没有写东西了
笔记