(静态角度看)操作系统的组成部分?
硬件、操作系统、库、库调用、系统调用
系统调用和库调用意味着什么?
环零指令和环三指令是指内核和用户,跟admin无关。
用户模式、用户空间、用户态
内核模式、内核空间、内核态
模式转换/切换、软中断、中断触发、触发中断、发起系统调用
整个系统(代码)执行过程就是不断在执行用户代码和执行内核代码之间转换。
内核的作用/功能:硬件驱动、内存管理、进程管理、网络管理、安全管理、文件系统(管理)
单任务、单CPU
多任务、多CPU
优先级
优先级再高,也不能霸占着CPU全部资源,你吃肉,得让别人喝点汤
中央集权式
内核:进程管理 --> 进程调度
你优先级再高,也高不过内核
进程的当前状态
指令指针寄存器,永远指向下一条指令
取指令,分析指令,执行指令
CPU寄存器:保存的是当前进程的状态
保存现场,保存在(内核),每一个进程都有自己的保存现场
恢复现场
Process: 运行中的程序的一个副本;(从创建,到销毁)存在生命周期;
进程的元数据
Linux内核存储进程信息的固定格式:task struct
链表:循环链表、双向链表、双向循环链表
多个任务的task struct组件的链表:task list
进程树
上帝仿照自己的样子造了第一个人(init)
内核不管理具体事务,init是内核的代理
内核在系统启动完成之后,就会把管理权交给init
进程的创建:init
进程是有父子关系的;进程都是由其父进程创建的;
fork(), clone()
CoW: 写时复制
进程的调度:
Linux Kernel 2.6
进程优先级:0-139
1-99:实时优先级;
100-139:动态/静态优先级,用户可调度的优先级;数字越小,优先级越高;
Nice值:-20,19
Big O: O(1), O(logn), O(n), O(n^2), O(2^n)
进程内存:
Page Frame: 页框,用来存储页面数据;存储Page
线性内存管理机制
线性地址空间
物理地址空间
虚拟内存实现机制
LRU是Least Recently Used的缩写,即最近最少使用,是一种常用的页面置换算法,选择最近最久未使用的页面予以淘汰。该算法赋予每个页面一个访问字段,用来记录一个页面自上次被访问以来所经历的时间 t,当须淘汰一个页面时,选择现有页面中其 t 值最大的,即最近最少使用的页面予以淘汰。
MMU: Memory Management Unit
缺页异常:major, minor
常驻内存集:不能被交换的
虚拟内存集:可以被交换的
IPC: Inter-Process Communication
同一主机上:
signal
shm: shared memory
semerphor
不同主机上:
rpc: remote procedure call
socket
Linux内核:抢占式多任务
进程类型:
守护进程:deamon(批处理进程)在系统引导过程中启动的进程,跟终端无关的进程;
前台进程:交互式进程,用户进程;跟终端相关,通过终端启动的进程;也可以把前台启动的进程送往后台,以守护模式运行;
进程状态:
运行态:running
就绪态:ready
睡眠态:sleeping
可中断睡眠:interruptable
不可中断睡眠:uninterruptable
磁盘IO:分两段,第一段数据等待从磁盘加载到内核内存,第二段数据等待从内核内存复制到进程内存
第一段是数据装入的过程,第二段才是系统调用上被叫做IO的过程
停止态:stopped, 暂停于内存中,但不会被调度,除非手动启动它
僵死态:zombie
进程的分类:
CPU-Bound: CPU密集型;多分CPU;
IO-Bound: IO密集型;调高优先级;
网友评论