课程设计 分析linux的内存管理,操作系统原理课程设计-Linux2.6进程管理和内存管理.doc...

操作系统原理课程设计

实践报告

全套设计加扣 3012250582

题 目:

Linux2.6进程管理和内存管理

姓 名:

学 院:

信息科技技术学院

专 业:

计算机科学技术系

班 级:

计科121

学 号:

指导教师:

2015年3月 18 日

摘要

通过学习Linux2.6系统的进程管理和内存管理,实现进程管理和内存管理的仿真实验。我们使用C#语言,采用面对对象的方式,并设计界面,然后通过代码实现各个模块,最后整合完成整个项目。实现的模块主要有Linux O(1)算法、伙伴系统算法、快表和LRU替换算法、虚存、页表等等。

关键词:Linux 2.6,进程管理,内存管理

一、理论基础

Linux是多用户多任务操作系统,支持多道程序设计、分时处理和软实时处理。操作系统中的进程定义为程序执行的一个实例,都拥有属于自己的唯一的task_struct。每个进程都在CPU的虚拟内存中分配地址空间,并且每个进程的地址空间都是相互独立的。进程地址空间由允许进程使用的全部线性地址组成,每个进程所看到的线性地址集合是不同的,一个进程使用的地址与另外一个进程使用的地址这件没有关系,内核可以通过增加或删除某些线性区间来动态修改进程的地址空间。

CPU可以在用户模式下运行,也可以在内核模式下运行,当某个程序在用户模式下运行时,不能直接访问内核中的数据结构或程序,但是,当程序运行在内核模式时,可以访问用户态的数据。对于某个执行的程序,多数的时间都处于用户模式,只有在需要内核提供服务时才会切换到内核模式,当内核满足了用户程序的需求后,再次返回到用户模式。

Linux系统中传统调度器对进程分别计算时间片,在进程的所有时间片用尽时,需要重新计算,现在的调度器只考虑进程的等待时间,也就是进程在就绪队列中已等待的时间。调度器的原理是按所分配的计算能力,想进程提供最大的公正性;每次调用调度器时,会选择等待时间最长的进程,把CPU提供给该进程,这样,进程的不公平性不会累积,不公平会均匀地分布到系统的所有进程中。

内存管理是内核中最重要同时也是最复杂的部分,需要处理器和内核之间的协作,内核在启动时通过调用start_kernel()函数实现内存结构的初始化工作,之后内存管理的工作交由伙伴系统算法承担。伙伴算法采用页框作为基本内存区,适合于大块内存的请求,但是当有小内存的请求时,分配一整个页框是一种浪费,因此引入了新的数据结构来描述在同一页框内分配小内存区。

虚存空间管理以进程为基础,每个进程最大可以拥有3GB的私有虚存空间,进程的内核空间被所有进程共享,进程虚存空间由mm_struct结构和vm_area_struct结构描述。Linux系统采用分页机制实现虚存管理,每个进程都有自己独立的虚存地址空间,进程虚拟地址空间通过进程的页目录和页表实现与物理内存的映射。进程创建时分配一个虚拟地址空间,直到实际对物理内存进行操作时才通过请页机制分配物理内存。

二、目的及意义

通过对Linux O(1)算法进行模拟,对就绪队列、active和expired队列进行模拟,对三级调度中的高级和低级调度进行模拟,对伙伴系统算法进行模拟,对虚存和物理内存进行模拟,对快表和LRU替换算法进行模拟,对页表进行模拟,加深对Linux2.6的进程管理和内存管理的了解,以及加强了团队意识。通过本次课程设计,我们能够深刻的理解Linux系统里的进程是如何运转调度的,连续空间的内存是如何分配的,物理内存和虚拟内存是如何映射的等等,从而了解到这些知识后,为我们设计或者改造出更好的进程管理和内存管理方案的想法提供了基础。

另外,熟悉C#和面向对象语言设计。

三、设计思想及设计功能说明

本次课程设计主要分为两个部分:Linux的进程管理和内存管理。

Figure SEQ Figure \* ARABIC 1 Linux进程管理和内存管理设计框图

3.1 O(1)算法:

对于给定的CPU,调度程序选择active队列组的就绪队列位图中的第一个被设置的位,该位对应于优先级最高的就绪进程队列,然后选择此优先级就绪队列中的表头进程,它就是要被调度执行的进程。active队列组内的就绪队列上的进程都有剩余的时间片;expired队列组就绪队列上的进程都耗尽时间片。

3.2 伙伴系统:

Linux内核内存管理的一项重

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值