提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
操作系统基础原理学习记录
一、操作系统的进程级别与资源类型
进程:
⽤户态进程 : 普通进程
内核态进程 : 直接和计算机硬件进⾏交互 – 更⾼级别权限进程
多⽤户/多任务
PC/SERVER 8G M.M
任务1 | 任务2 ---- 进程
进程1 | 进程2
相同级别进程之间发⽣资源抢占
Systemcall – 打电话给内核 申请硬件资源
计算机资源
CPU资源
内存资源
I/O资源
二、系统中的CPU资源
内核 -> ⽤户态程序|进程分配资源
CPU资源分配 (时间)
4/6/8
2物理核⼼ - 超线程 4个逻辑核⼼
6个逻辑核⼼ – 50进程
800MHZ | 1S 计算800M次 80000 0000 次 | 8亿次
内核先占据CPU全部时间,再通过时间分配⽅式,将不同的应⽤程序分配不同时间
三、系统中的内存资源
内存资源-空间资源
内存分配 ----- Kernel 占据全部内存 ----- 通过空间分⽚⽅式将不同区域的内存分配给 ⽤户态应⽤程序|进程。
对于应⽤程序-需要获取到⼀段连续的线性地址空间
对于应⽤程序 – 启动后-内存会动态调整
OS – kernel 内核看到的是物理内存地址空间 , 内核不会将物理内存直接分配给应⽤程序
如何解决?
1. 创建page 内存⻚
可以将物理内存空间 ---- 进⾏ 4096 cell 划分成⼀个page
2. 创建映射物理内存和虚拟内存映射
通过TLB映射表- 实现物理内存地址和虚拟内存地址的映射关系
每个应⽤程序看到的内存地址空间是kernel通过TLB映射表给应⽤程序准备的虚拟内存地址
四、系统中的I/O资源
I/O device 资源划分
⽹卡
硬盘
USB
I/O控制器汇总芯⽚:
早期名称:南桥 / 现在名称:PCH平台总线控制器芯⽚
⽹卡
硬盘
应⽤程序访问⽹卡/硬盘 发送I/O指令
TCP/IP ------ [ether2][ip][udp][app] -> 010101001
SCSI. ----- Bus-id | targer-id | lun-id | LBA-id\
所有的I/O指令都属于敏感指令
在⽤户态进程使⽤I/O设备时需要通过,System call 发起系统调⽤ ----- 通知内核
在操作系统内核-应⽤程序
Linux-kernel : 掌控权限