操作系统 | 源码分析

简介: 操作系统 | 源码分析

1. 操作系统实验之源码分析

1.1 实验目的

  • 通过阅读源代码,分析研究linux的进程调度策略和算法

1.2 实验内容

  • 完成操作系统的源码分析

1.3 实验步骤

实验步骤:

1.在网站下载linux-2.4.22.tar.gz并解压,其目录结构如图6-1.

其中arch:硬件结构相关代码

kernel:进程调度和管理

mm:内存管理

fs:文件系统

drivers:驱动程序

ipc:进程间通讯

include:头文件,定义内核数据结构

2.下载使用Source Insight 4.0打开查看sched.h的调度函数schedule(),并将全部代码导入如图6-2.

3.进程调度队列的组织如图6-3.

4.三种调度类型(SCHED_FIFO、SCHED_RR、SCHED_OHTER)实现过程如图6-4至图6-6.整体调度流程图如图6-7.

5.优先级如何定义和动态变化如图6-8.

6.时间片的赋值?它与优先级的关系如图6-9.

7.对实时进程和多CPU的支持如图6-10.

8.评价linux的调度策略,提出改进意见如图6-11.


1.4 实验过程

图6-1

图6-2

图6-3

图6-4

图6-5

图6-6

图6-7

图6-8

图6-9

图6-10

图6-11


1.5 心得体会

通过此次实验,我将近花了一周的时间去弄懂操作系统linux-2.4.22内核的代码,由于确实在上万行代码的浏览中有些乏力所以写了大量的注释,参考了部分博客,也查阅了大量的资料,回答了实验六要求的六个问题,并提出自己的改进策略:

在调度函数schedule中,不论是SCHED_FIFO、SCHED_RR还是SCHED_OTHER,在判断结束后都会统一进行判断是否需要重新计算每个进程的时间片,判断的依据是所有正准备进行调度的进程时间片耗尽,这需要对就绪队列中的每一个进程都重新计算时间片,然后返回前面的调度过程,重新在就绪队列当中查找优先级最高的进程执行调度,而除了SCHED_RR用到了时间片外,其余两种调度并未直接使用时间片,所以对此可以将该判断专门放入SCHED_RR调度,对于SCHED_FIFO和SCHED_OTHER就无需操作此步,程序得以加快速度。

让我开心的是,在网上改进的2.6版内核提到了该问题并作出了优化,所以我坚信只要愿意付出,会获得自己想要的收获,努力做到虚壹而静,静心而行。


2. 致读者

虚壹而静,静心而行

目录
相关文章
|
4月前
|
存储 算法 调度
深入理解操作系统:从原理到实践
【7月更文挑战第24天】本文将深入探讨操作系统的基本原理和实践应用,包括进程管理、内存管理、文件系统和设备管理等方面。通过理论与实践相结合的方式,帮助读者更好地理解和掌握操作系统的相关知识。
|
2月前
|
存储 安全 Linux
探索操作系统:从原理到实践
【9月更文挑战第14天】本文深入探讨了操作系统的核心概念,通过分析其设计原则和功能,揭示了操作系统如何管理计算机硬件资源、提供用户接口并确保系统安全。文章不仅阐述了操作系统的基本原理,还通过实际代码示例展示了如何在操作系统上进行编程,旨在帮助读者更好地理解并应用操作系统知识。
38 1
|
2月前
|
算法 调度 UED
操作系统中的进程管理:原理与实践
在数字世界的心脏跳动着无数进程,它们如同细胞一般构成了操作系统的生命体。本文将深入探讨进程管理的奥秘,从进程的诞生到成长,再到最终的消亡,揭示操作系统如何协调这些看似杂乱无章却又井然有序的活动。通过浅显易懂的语言和直观的比喻,我们将一起探索进程调度的策略、同步机制的重要性以及死锁问题的解决之道。准备好跟随我们的脚步,一起走进操作系统的微观世界,解锁进程管理的秘密吧!
66 6
|
4月前
|
存储 Linux Windows
操作系统中的内存管理:从原理到实践
内存管理是操作系统中的核心功能,它直接影响着系统的性能和稳定性。本文将深入探讨内存管理的基本原理、关键技术以及实际应用,帮助读者更好地理解内存管理在操作系统中的重要性。
|
6月前
|
存储 缓存 算法
深入理解操作系统的内存管理:原理与实践
【5月更文挑战第30天】 在现代计算机系统中,操作系统扮演着至关重要的角色,尤其是内存管理作为其核心功能之一。本文将详细探讨操作系统内存管理的基本原理、关键技术以及实际应用场景。我们将从内存层次结构出发,解析地址转换和分页机制,并探讨虚拟内存技术如何使得系统运行更加高效稳定。同时,通过分析具体案例,本文还将展示内存管理在提升系统性能和安全性方面的重要作用。
|
6月前
|
程序员 内存技术
深入理解操作系统内存管理:原理与实践
【5月更文挑战第30天】 在现代计算机系统中,操作系统的内存管理是确保系统高效、稳定运行的关键。本文将深入探讨操作系统中内存管理的理论基础和实际应用,包括物理内存与虚拟内存的映射机制、分页与分段技术、以及内存分配策略等。通过对内存管理机制的分析与案例实践,旨在为读者提供一个清晰的内存管理概念框架和操作指南,帮助理解操作系统如何优化内存资源使用,提高系统性能。
|
6月前
|
存储 程序员
操作系统(1)----操作系统的运行机制
操作系统(1)----操作系统的运行机制
76 0
|
安全
操作系统的运行机制
1.程序是如何运行的? 程序运行的过程就是CPU执行一条一条机器指令的过程 2.程序的分类 程序分为应用程序和内核程序 应用程序只能执行非特权指令,运行在用户态 内核程序可以执行特权指令,也可以执行非特权指令,运行在内核态
117 0
|
安全 调度
【操作系统】多线程基础知识
【操作系统】多线程基础知识
|
6月前
|
SQL 自然语言处理 机器人
Flink sql滚动窗口怎么操作能实现stream里的allowlateness?
【1月更文挑战第3天】【1月更文挑战第12篇】Flink sql滚动窗口怎么操作能实现stream里的allowlateness?
92 1