第 3 章 进程
进程概念
进程
一个进程包括:
text/code section 文本/代码段
data section 数据段:存放全局变量
stack:存放程序运行环境,例如函数参数、局部变量、返回地址
heap:动态分配内存
program counter 程序计数器
内存中的进程占用的大部分空间是未知的部分
进程状态
每个进程可能处于以下状态:
new:进程正在创建
running:指令正在执行
waiting:进程等待发生某个事件,例如 I/O 完成
ready:进程等待分配处理器
terminated:进程已经完成执行
进程状态图
进程控制块(Process Control Block, PCB)
采用进程控制块结构来表示进程,便于操作系统控制进程
进程控制块保存了进程状态、程序计数器、CPU 寄存器、CPU 调度信息、内存管理信息、记账信息、I/O 状态信息。
PCB 不一定保存的是当前运行状态的信息,而是上一次发生进程切换时保存下来的信息
PCB 的更新发生在进程切换时
进程间的 CPU 切换
Linux 操作系统的进程控制块采用 C 语言结构t ...
第 2 章 操作系统结构
操作系统的服务
从用户角度,操作系统有一组服务用于提供用户功能:
用户界面:命令行界面(Command-Line Interface, CLI)、批处理界面(batch interface)、图形用户界面(Graphical User Interface, GUI)
程序执行:系统加载程序到内存并运行
I/O 操作
文件系统操作
通信:通信实现可以通过共享内存或消息传递
错误检测:操作系统需要不断检测错误和更正错误,错误可能源于 CPU 或内存硬件(如内存错误或电源故障)、I/O 设备(如磁盘奇偶检验出错、网络连接故障)、用户程序(如算术溢出、企图非法访问内存地址、占用 CPU 时间过长)等
从系统角度,有一组操作系统服务通过共享计算机资源确保系统本身运行高效:
资源分配
记账:记录用户使用资源的类型和数量
保护和安全
中断和异常的概念
中断和异常的定义
中断(Interruption)也称外中断,指来自 CPU 执行指令以外的事件的发生,如设备发出的 I/O 结束中断、时钟中断。
异常(Exception)也称内中断,指源自 CPU 执行指令内部的事件,如程序 ...
第 1 章 操作系统导论
操作系统是指控制和管理整个计算机系统的硬件与软件资源,合理地组织、调度计算机的工作与资源分配,进而为用户和其它软件提供方便接口与环境的程序集合。
操作系统的功能
资源分配器
操作系统是一直运行在计算机上的程序(通常称为内核)。
除了内核之外还有系统程序(与系统运行有关,但不属于内核)和应用程序(与系统运行无关)两类程序。
移动操作系统通常不只有内核也有中间件,是为应用程序开发人员提供其他功能的软件框架
计算机系统的组成
总线提供了共享内存访问
内存控制器协调访问内存
当计算机电源打开或重启以便开始运行时,它需要运行一个初始程序,该初始程序或引导程序(bootstrap program)一般位于计算机的固件(firmware),如只读内存(Read-Only Memory, ROM)或电可擦可编程只读内存(Electrically Erasable Programmable Read-Only Memory, EEPROM)。
初始程序初始化系统的各个组件,从 CPU 寄存器、 设备控制器到内存内容。
中断
中断处理7个步骤:
I/O
同步(Synchronous) ...
一封写给朋友们的晚安短信
今天是十一月的最后一天。转眼间,2020已只剩下最后一个月。
去年跨年夜许下的心愿,如今实现了几个呢?
曾经一起倒数三二一的人们,现在还在一起吗?
回想这一年,我们也许会感到开心或者遗憾,而“快”可能是很多人对2020最直接的感受。我们总觉得时间在自己身上流逝的速度太快,而我们还没有反应过来。
很早就听说过一句话,之所以会觉得时间一年比一年过得快,是因为时间对我们一年比一年重要。
这一年,我开始不再受未成年人保护法的保护,学着管理自己的情绪,学着承担更多的责任。我会意识到,前面没有什么东西可以让我依靠,因此我从现在开始不得不依靠自己;我也意识到,没有任何方向,正意味着我必须锻造出属于自己的方向。
这一年,我有过豪情万丈却只有三分钟热度的时刻,有过持续九个月却没能经营下去的感情,有过沉重且始终遗憾的挫折,有过和朋友一起倒在床上互相倾诉的夜晚,有过深感无力又彷徨无助的瞬间。我知道,如果2020重来一次,我也未必能做得更好。没什么关系,接受不完美的自己,不完美的自己也是真实的自己,当下的裂痕最后都会变成每个人的故事中独一无二的花纹。
这一年,我认识了不少新朋友,但我想和自己说,不要因为身边的 ...