<王道操作系统第2集>1.4~2.1.3

持续更新

详细笔记

深入理解

废话少说

补充上一集

中断 / 异常 / 陷阱(统称中断类事件)是 CPU 从用户态切换到内核态的唯一硬件合法入口,而系统调用本质是一种特殊的软件中断 / 陷阱(同步中断),和硬件中断(异步中断)同属「中断类事件」的范畴,并非两种独立的切换方式。

1.4(上) 操作系统的体系结构

操作系统基本结构

每一层大概是 :

$ 用户

$ 应用程序 用户

$ 操作系统(内核功能和非内核功能)

$ 裸机

图如下 :

内核是操作系统最基本,最核心 的部分

实现操作系统内核功能的那些程序是内核程序

大内核 和 微内核

大内核 :

所有操作系统核心服务 (进程调度、内存管理、中断处理、文件系统、网络协议栈、设备驱动等)都集成在同一个内核态地址空间中,服务间通过直接函数调用通信,无跨地址空间开销。

典型:Linux、FreeBSD、传统 UNIX

微内核 :
仅保留最核心的功能 (进程调度、内存地址空间管理、中断处理、基础进程间通信

IPC)在特权内核态其余 所有服务(文件系统、网络、驱动、GUI 等)全部移到用户态作为独立的 "服务器进程"

运行,服务间通过消息传递(IPC)跨地址空间通信。

典型:Minix 3、QNX(实时系统)、Mach(纯微内核版本)

大内核的体系结构

所有操作系统的核心服务都集成在一个内核态地址空间

情景:

操作系统的体系结构是大内核结构,应用程序想要请求操作系统的服务,这个服务的处理同时涉及到进程管理,存储管理,设备管理

在大内核体系结构下,应用程序向操作系统提出服务的请求,CPU会从用户态切换为内核态,开始运行一系列的内核程序

微内核的体系结构

仅保留最核心的功能集成在内核态地址空间

其他的服务全部移到用户态,作为单独的服务器进程

情景:

操作系统的体系结构是微内核结,应用程序想要请求操作系统的服务,这个服务的处理同时涉及到进程管理,存储管理,设备管理

在微内核体系结构下,应用程序向操作系统提出服务的请求,进程管理模块在处理应用程序的请求的时候,需要内核的请求,就是说,每一个模块响应应用程序的请求的时候,都需要向内核发出请求,变态的次数多

注意 : CPU特权态的转换过程是有成本的,要消耗不少时间,频繁的变态会降低系统的性能

大内核 && 微内核 的优缺点

1.4(下) 操作系统的体系结构

操作系统体系结构 : 大内核(又叫宏内核/单内核) , 微内核 , 分层内核 , 模块化 , 外核

1.5 操作系统引导

操作系统引导------开机的时候,怎么让操作系统运行起来

(完整的操作系统初始化程序(即 启动管理器)可以在根目录下找到)

1.6 虚拟机(Virtual Machine , VM)

虚拟机 :

使用虚拟化技术,将一台物理机器虚拟化为多台虚拟机器,每一个虚拟机都可以独立运行一个操作系统

虚拟机管理程序(Virtual Machine Monitor , VMM)

第一类虚拟机管理程序---直接运行在硬件上

第二类虚拟机管理程序---运行在宿主操作系统上

对比两类 虚拟机管理程序(VMM)

类型1虚拟机管理程序,是直接安装并运行在物理硬件上,没有任何宿主操作系统,创建多个虚拟机后,虚拟机通过虚拟机管理程序提供的接口,操作硬件

类型2虚拟机管理程序,是安装在原有的操作系统(宿主系统host OS 如 Window11 macOS Ubuntu)上,安装多个虚拟机后,虚拟机的指令先由虚拟机管理程序处理,在翻译为宿主系统可以执行的指令,最终由宿主系统调度到物理硬件执行

2.1.1+2.1.2 进程(Process)的概念,组成,特征

小总结

进程的概念

程序 : 是静态的,就是个存放在磁盘里的可执行文件,就是一系列的指令集合

进程 : 是动态的,是程序的一次执行过程

当进程被创建时,操作系统会为该进程非陪一个唯一的,不重复的"身份证号" ----PID (Process ID , 进程ID)

操作系统要记录PID,进程所属用户ID(UID )

还要记录给进程分配了哪些资源(如 : 分配了多少内存,正在使用哪些I/O设备,网络流量使用情况...)

还要记录进程的运行情况(如 : CPU的使用时间,磁盘的使用时间,网络流量的使用时间...)
这些信息都会保存在一个叫PCB(Process Control Block)中,即 进程控制块

进程管理块 PCB(Process Control Block)

PCB是进程存在的唯一标识

当进程被创建时,操作系统为其创建PCB

当进程结束时,操作系统会回收其PCB

进程的组成

PCB 是进程存在的唯一标识

注意 : 程序段和数据段是给进程自己用的,与进程自身的运行逻辑无关
"一个进程被调度" 就是指 操作系统决定让这个进程上CPU运行

如果同时挂起三个QQ号,会对应三个QQ进程,会有三个PCB,它们的PCB,数据段各不相同,但是程序段的内容都是相同的

进程的特征

2.1.3 进程的状态与转换

进程的状态

创建态 :

进程被创建时,它的状态是"创建态 ",在这个阶段,操作系统会为进程分配资源,初始换PCB

就绪态 :

进程创建完了,便进入"就绪态 ",处于就绪态的进程已经具备了运行条件,但是由于没有CPU,就暂时不能运行

阻塞态 :

在进程运行的过程中,可能会请求等待某个时间的发生(如 等待某种系统资源的分配,等待其他进程的响应),在这个事件发生之前,进程就无法继续往下执行,此时操作系统会让整个进程下CPU,并让它进入"阻塞态 ",当CPU空闲时,又会选择另一个处于就绪态的进程执行

终止态 :

一个进程可以执行exit系统调用,请求操作系统终止该进程,此时该进程会进入"终止态 ",操作系统会让该进程下CPU,并回收内存空间等资源,最后还要回收该进程的PCB

当终止进程的工作完成之后,这个进程就彻底消失了

状态的转换

进程状态 小总结

相关推荐
VekiSon4 小时前
Linux内核驱动——Ubuntu 网络启动环境配置与操作
linux·arm开发·嵌入式硬件·ubuntu
ONLYOFFICE6 小时前
如何在 Fedora 43 ARM 架构设备上安装 ONLYOFFICE 桌面编辑器
arm开发·编辑器
陌上花开缓缓归以6 小时前
insmod 报错问题定位纪要
linux·arm开发
byte轻骑兵2 天前
ARM 嵌入式处理器内核与架构深度剖析(3): ARM嵌入式处理器的架构组成
arm开发
Jing_jing_X2 天前
CPU 架构:x86、x64、ARM 到底是什么?为什么程序不能通用?
arm开发·架构·cpu
芙蓉王真的好12 天前
安全无篡改:Windows 10 22H2/LTSC/ARM 官方原版镜像下载渠道与使用教程
arm开发·windows·安全
切糕师学AI2 天前
ARM 架构中的复位(Reset)与复位流程
arm开发·单片机·嵌入式·复位
VekiSon2 天前
Linux内核驱动——基础概念与开发环境搭建
linux·运维·服务器·c语言·arm开发
MickyCode2 天前
嵌入式开发调试之Traceback
arm开发·stm32·单片机·mcu
wwwlyj1233212 天前
ARM CMSIS-DSP Q格式
arm开发