"操作系统课设之-Linux" 本文档是关于 Linux 操作系统内核的详细介绍,包括 Linux 内核代码的阅读和分析,以及时钟中断与进程调度的相关知识。 一、Linux 操作系统介绍 Linux 是一类 Unix 计算机操作系统的统称,Linux 操作系统的内核的名字也是“Linux”。Linux 操作系统也是自由软件和开放源代码发展中最著名的例子。严格来讲,Linux 这个词本身只表示 Linux 内核,但在实际上人们已经习惯了用 Linux 来形容整个基于 Linux 内核,并且使用 GNU 工程各种工具和数据库的操作系统。 二、进程调度 进程是计算机中一种基本的执行单元,进程分为两种:普通进程和实时进程。普通进程的优先级用进程控制块中的 counter 表示,实时进程的优先级用 rt_priority 表示,它在进程控制块中有定义。当就绪队列中同时存在两种进程的时候,实时进程总是先于普通进程运行,它的实现机制是实时进程的权值以 1000 做为基础值,也就是说实时进程的权值是 1000 加上它的进程优先级,而普通进程的优先级就是它的进程优先级。 三、Intel 8254 PIT 芯片简介 Intel 8254 PIT 是一款时钟芯片,有 3 个计时通道,每个通道都有其不同的用途。通道 0 用来负责更新系统时钟,每当一个时钟滴答过去时,它就会通过 IRQ0 向系统产生一次时钟中断。通道 1 通常用于控制 DMAC 对 RAM 的刷新。通道 2 被连接到 PC 机的扬声器,以产生方波信号。每个通道都有一个向下减小的计数器,8254 PIT 的输入时钟信号的频率是 1193181HZ,也即一秒钟输入 1193181 个 clock-cycle。每输入一个 clock-cycle 其时间通道的计数器就向下减 1,一直减到 0 值。因此对于通道 0 而言,当他的计数器减到 0 时,PIT 就向系统产生一次时钟中断,表示一个时钟滴答已经过去了。 四、时间系统基本概念 1. 实时时钟(RTC 时钟):是一块芯片(或叫做时钟电路),靠电池供电,即使系统断电,也可以维持日期和时间。独立于操作系统,也被称为硬件电路,为整个计算机提供一个计时标准,是最原始最底层的时钟数据。Linux 只用 RTC 来获取时间和日期,也允许进程对 RTC 编程。 2. 操作系统时钟(软时钟、系统时钟):产生于 PC 主板上的定时/计数芯片,由操作系统控制这个芯片的工作,基本单位是该芯片的计数周期。开机时操作系统去的 RTC 中的时间数据来初始化 OS 时钟,通过计数芯片的向下计数形成 OS 时钟。 3. 时钟运作机制:RTC 是 OS 时钟的基准,操作系统通过读取 RTC 来初始化 OS 时钟,此后二者保持同步运行,每隔一个固定时间会刷新或校正 RTC 中的信息,共同维持着系统时间。 4. 时间基准:1970-01-01 00:00:00 5. 时间系统用全局变量 jiffies 表示系统自启动以来的时钟滴答数目。 五、动态定时器 动态定时器是指内核的定时器队列是可以动态变化的,内核函数 init_timer()用来初始化一个定时器。假定一个定时器要经过 interval 个时钟滴答数目后才到期(interval = expires -jiffies),则 Linux 采用了以下思想来实现其动态内核定时器机制:对那些 0≤interval≤255 的定时器,Linux 严格按照定时器向量的基本语义来组织这些定时器,也即 Linux 内核最关心那些在接下来的 255 个时钟节拍内就要到期的定时器,因此将它们按照各自不同的 expires 值组成 256 个定时器向量。而对那些 256≤interval≤0xffffffff 的定时器,由于他们离到期还有一段时间,因此内核并不关心他们,而是将它们以一种扩展的定时器向量语义。 六、时钟中断 时钟中断是指可编程定时器/计数器产生输出脉冲,送入 CPU,引发一个中断请求信号,我们称之为时钟中断。每产生时钟中断,系统就会执行相应的中断处理程序,以处理时钟中断事件。 本文档详细介绍了 Linux 操作系统的基本概念,包括 Linux 内核、进程调度、Intel 8254 PIT 芯片、时间系统基本概念、动态定时器和时钟中断等知识点,为读者提供了一个系统的 Linux 操作系统知识架构。
剩余28页未读,继续阅读
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于java+ssm+mysql的大学生社团管理系统任务书.docx
- 客户流失预测/产品推荐算法介绍
- 基于java+ssm+mysql的蛋糕甜品店管理系统开题报告.doc
- 应急响应实战笔记:入侵分析、日志分析、权限维持、windows实战篇、LInux实战篇、WEB实战篇
- 基于java+ssm+mysql的点餐系统开题报告.docx
- 工作汇报ppt模板(黑色主题)
- 基于java+ssm+mysql的点餐系统任务书.docx
- python-7.纪念品分组-我的啦.py
- 基于java+ssm+mysql的公交车信息管理系统开题报告.doc
- python-8.统计数字-但是很大.py
- 基于java+ssm+mysql的公交车信息管理系统任务书.docx
- python-9.字符串的展开-领域!展开!.py
- browser-protocol
- 良人啊_Signed.apk
- 数智化时代医院临床试验人才培养的创新路径与实践探索.pdf
- KUKA OMNIMOVE重载型移动式运输平台工程图机械结构设计图纸和其它技术资料和技术方案非常好100%好用.zip