摘要:
(一)8086/8088寻址方式 首先,简单讲述一下指令的一般格式: 操作码 操作数 …… 操作数 计算机中的指令由操作码字段和操作数字段组成。 操作码:指计算机所要执行的操作,或称为指出操作类型,是一种助记符。 操作数:指在指令执行操作的过程中所需要的操作数。该字段除可以是操作数本身外,也可以是操 阅读全文
摘要:
两个月Linux内核的学习,让我理解了Linux内核的基本工作原理,包括进程管理、内存管理、设备驱动、文件系统,从分析内核到了解整个系统是如何工作的、如何控制管理资源分配、进程切换并执行、各种策略和结构让系统运行时更有效率等。每周都要看视频、做实验、写博客,在一点一滴的积累中,我逐渐弄清楚Linux 阅读全文
摘要:
4.1多任务 多任务操作系统:同时并发地交互执行多个进程的操作系统 多任务操作系统会使多个进程处于堵塞或者睡眠状态。这些任务尽管位于内存,但是并不处于可运行状态。这些进程利用内核堵塞自己,直到某一事件发生。 多任务系统可以划分为两类:非抢占式和抢占式。 抢占:强制挂起。 时间片:分配给每个可运行进程 阅读全文
摘要:
一、原理分析 1.调度时机 背景不同类型的进程有不同的调度需求第一种分类I/O-bond:频繁的进行I/O;通常会花费很多时间等待I/O操作的完成CPU-bound:计算密集型;需要大量的CPU时间进行运算 第二种分批处理进程(batch process):不必与用户交互,通常在后台运行;不必很快响 阅读全文
摘要:
链接是将各种代码和数据部分收集起来并组合成为一个单一文件的过程,这个文件可被加载(或拷贝)到存储器并执行。 链接的时机:编译时,也就是在源代码被翻译成机器代码时;加载时,也就是在程序被加载器加载到存储器并执行时。 •运行时,由应用程序执行。 在现代系统中,链接是由链接器自动执行的。 1.编译器驱动程 阅读全文
摘要:
一、内容分析 1.可执行文件的创建 (1)预处理阶段 预处理过程读入源代码,检查包含预处理指令的语句和宏定义,并对源代码进行相应的转换,预处理过程还会删除程序中的注释和多余的空白字符。其中预处理指令主要包括以下四个方面: 宏定义指令——预处理过程会把源代码中出现的宏标识符替换成宏定义时的值,常用的两 阅读全文
摘要:
进程管理 进程是处于执行期的程序以及相关的资源的总称,也称作任务。执行线程,简称线程,是在进程中活动的对象。 可以两个或两个以上的进程执行同一个程序 也可以两个或两个以上并存的进程共享许多资源 内核调度的对象是线程,而不是进程。 进程描述符及任务结构 内核把进程的列表存放在任务列表(task lis 阅读全文
摘要:
一、原理分析 1.进程的描述 进程控制块PCB——task_struct,为了管理进程,内核必须对每个进程进行清晰的描述,进程描述符提供了内核所需了解的进程信息。 2.进程的创建 道生一(start_ kernel...cpu_ idle),一生二(kernel_ init和kthreadd),二生 阅读全文
摘要:
第五章——系统调用 5.1 与内核通信 1.为用户空间提供一种硬件的抽象接口 2.保证系统稳定和安全 3.除异常和陷入,是内核唯一的合法入口。 API、POSIX和C库 关于Unix接口设计:提供机制而不是策略5.3 系统调用 5.3.1系统调用号 当用户空间的进程执行一个系统调用,就用系统调用号指 阅读全文
摘要:
一、实验内容 1. 通过内核的方式使用系统调用 需要使用的命令 2. 将上周选择的系统调用添加到MenuOS中 打开menu中的 test.c文件,添加Gitpid和Gitpidasm代码 在main函数中添加 重新make 后。可以看到menuOS有了getpid的命令,功能为返回当前进程的标识。 阅读全文