零
持续更新
详细笔记
深入理解
废话少说
补充上一集
中断 / 异常 / 陷阱(统称中断类事件)是 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
当终止进程的工作完成之后,这个进程就彻底消失了
状态的转换

进程状态 小总结
