抢占式|深入理解计算机系统:进程
导语:这是篇读书笔记 , 每次重读CSAPP都有新的认知 , 尤其是在进入了后台通道之后才感受到每天和进程打交道的感觉是如此深刻 。
文章插图
0x00 What is Process?
文章插图
[ system structure ]
- 进程(Process)
- 线程(Thread)
- 内核(Kernel)
- 外壳(Shell)
- 抢占(Preemption)
非抢占式(Nonpreemptive)——让进程运行直到结束或阻塞的调度方式 。
抢占式(Preemptive)——允许将逻辑上可继续运行的在运行过程暂停的调度方式 。 可防止单一进程长时间独占CPU 。
- 异常控制流(ECF , Exceptional Control Flow)
某些如跳转、调用和返回是为了使得程序对内部状态变化(event)做出反应而设计的机制 , 系统通过使控制流发生突变对发生各种状态变化 。
Exceptions
任何情况下 , 处理器检测到event发生 , 通过异常表(exception table)跳转到专门处理这类事件的操作系统子程序(exception handler) 。
【抢占式|深入理解计算机系统:进程】异步异常由事件产生 , 同步异常是执行一条指令的直接产物 。
类别包含中断(异步) , 陷阱(同步) , 故障(同步) , 终止(同步) 。
- 中断——异步发生 , 处理器IO设备信号的结果 。
- 陷阱——有意的异常 。 最重要的用途是在用户程序和内核之间提供一个像过程一样的接口 , 叫做系统调用 。
- 故障——潜在可恢复的错误造成的结果 。 如果能被修复 , 则重新执行引起故障的指令 , 否则终止 。
- 终止——不可恢复的致命错误造成的结果 。
我们常见的段故障(Segmentation fault) , 是一般保护故障(异常13) , 通常是因为一个程序引用了一个未定义的虚拟存储器区域 , 或者因为程序试图写一个只读的文本段 。
文章插图
[ Examples of popular system calls ]
Processes
- 逻辑控制流(Logical Control Flow)
逻辑流看起来就像是在独占处理器地执行程序 , 每个进程执行逻辑流的一部分然后就被抢占 , 实际上处理器通过上下文保护好进程间的信息 , 在不同的进程中切换 。
- 并发流(Concurrent Flows)
一个进程和其他进程轮流运行叫多任务(multitasking) 。
进程占有CPU执行控制流的每一个时间段叫时间片(time slice) 。
- 抖音小店|抖音进军电商,短视频的商业模式与变现,创业者该如何抓住机遇?
- 公式|?有人把 5G 讲得这么简单明了
- 表达|重磅!2021世界安防博览会官方宣贯会正式召开,百余家企业表达参展意愿
- YFI正式宣布与Sushiswap合作|金色DeFi日报 | 合作
- 小店|抖音小店无货源是什么?与传统模式有什么区别?
- 视频社会生产力报告|视频社会雏形已成,绿厂或凭这技术抢占先机
- 正确|新昌消防丨听说,这才是微信新表情的正确打开方式
- 早报:高通骁龙888正式发布 嫦娥五号传回首张图片
- 运营|首个OTA智能社区落地 社区运营酿发展模式之变
- wmv|怎么把mp4转wmv?转换视频格式,这样操作很掂