Linux操作系统实验教程

出版社:李敏、叶保留、 费翔林 高等教育出版社 (2009-04出版)
出版日期:2009-4
ISBN:9787040262940
页数:467页

章节摘录

版权页:   插图:   6.2.4 虚存管理的原理和实现技术 6.2.4.1 虚拟存储器 在具有层次结构存储器的计算机系统中,利用大容量辅存(磁盘)来扩充主存,采用由系统自动实现“部分装入”和“部分替换”功能,能从逻辑上为用户提供一个比物理主存容量大得多的,可寻址的一种“主存储器”,称虚拟存储器(virtual memory)或虚拟主存,简称虚存。虚存允许用户程序以逻辑地址寻址,而不必考虑物理主存的大小,实际上虚存管理对用户隐蔽可用物理存储器的容量和操作细节,主存可看作是虚存的缓冲区,这种将物理空间和辅存空间分开编址但又统一使用的技术,既为用户编程提供了极大方便,又进一步提高了主存利用率和系统吞吐量。 6.2.4.2 虚存的基本概念 1.程序局部性原理 一个进程的程序和数据的访问都有聚集成群的倾向。某存储单元被使用,其相邻存储单元很快也被使用,称空间局部性(Spatial Locality),或者最近访问过的程序代码和数据,很快又被访问,称时间局部性(Temporal Locality)。基于这个原理,在任何时刻,只有进程的几个片段在主存中,因此主存中可以装入更多进程,甚至进程的程序总量比主存还要大;同样原理,也可预测在较短时间的将来会用到进程的哪些片段或不再使用哪些片段,以便作出调度。 2.颠簸 颠簸是指CPU把大部分时间花在调入调出进程的片段上,而不是执行用户指令和访问数据。

前言

  操作系统是计算机系统的核心和灵魂,是计算机系统必不可少的组成部分,也是计算机专业教学的重要内容。该课程概念众多、内容抽象、灵活性与综合性强,不但需要讲授操作系统的概念和原理,还需要加强操作系统实验,上机进行编程实践,这样才能让学生更好地掌握操作系统的精髓,真正做到深刻理解和融会贯通。人们已充分认识实践环节在学好操作系统过程中的重要性。实践是操作系统课程教学活动的重要环节,但实验教学难度大,由于实用操作系统的应用环境约束性强,实验环节的可操作性差,而且模块众多、盘根错节、技术细节剖析困难,动手及实践能力很难培养。编写本实验教程是为了在学习操作系统基本原理的同时,强调理论联系实际,为操作系统实验教学提供一定的指导和帮助。  操作系统实验教学的基本目的和要求:  (1)学生应该通过实验加深理解和更好地掌握操作系统的基本概念、原理、技术和方法,巩固所学知识,激发实验兴趣,掌握实验要领,培养对操作系统课程所学知识融会贯通和综合运用的能力。  (2)学生应该通过实验提高自己剖析和设计操作系统的能力,加强分析问题、解决问题能力的培养,加强创新意识与探索精神、科学作风与综合素质的培养。  (3)学生应该通过实验深入了解和熟练掌握一种操作系统的组成、特点、源码构成、内部结构、替换模块、扩充功能,以及编译、调试、运行的方法,达到拓宽编程思路、把握操作系统整体的目的。  (4)学生应该通过实验养成良好的理论联系实际、自己动手操作的习惯,以获得项目管理和团队协作的实际训练和具体经验。  编写操作系统实验教程,首先要选择实验环境和平台,其次要精选上机实验内容,这对提高实验课程的教学质量十分重要,Linux是开放源码操作系统,也是当今最流行和广为使用的主流操作系统之一。本书选用Linux内核版本V2.6作为操作系统实验和实习环境,通过在实用操作系统环境下的实际锻炼,不但让学生对操作系统的基本原理有更深入的理解,学生的动手实践能力更上一个台阶,而且能进一步掌握Linux操作系统的系统结构、设计和实现的基本思路和原理,也能更好地适应社会信息化对计算机专业人才的需求。  作者根据多年来操作系统研究和教学的经验,参考国内外出版的操作系统实验教材,精心设计系列实验供实验教学选择使用,本书中的实验题目和示例都已经在V2.6.22内核版本上通过调试,并能正确运行。  本实验教程的内容分3个部分。第一部分(第1章~第11章)为Linux APl使用与操作系统算法实验。

书籍目录

第1章 Linux的安装和编译 1.1 实验目的 1.2 背景知识 1.2.1 Linux简史 1.2.2 Linux内核的功能和结构 1.2.3 Linux内核的版本和发行版本 1.2.4 Linux内核的目录结构 1.3 实验内容 1.3.1 实验1安装Ubuntu 8.0.4 1.3.2 实验2编译Linux内核 1.3.3 实验3 Linux下C语言程序开发过程 第2章 进程与线程 2.1 实验目的 2.2 背景知识 2.2.1 进程与线程的概念 2.2.2 多进程编程 2.2.3 多线程编程 2.3 实验内容 2.3.1 实验1 创建进程 2.3.2 实验2 线程共享进程中的数据 2.3.3 实验3 多线程实现单词统计工具 第3章 传统的进程间通信 3.1 实验目的 3.2 背景知识 3.2.1 进程间通信的方式 3.2.2 信号通信 3.2.3 管道通信 3.3 实验内容 3.3.1 实验1 信号通信 3.3.2 实验2 匿名管道通信 3.3.3 实验3 命名管道通信 3.3.4 实验4 使用命名管道建立客户/服务器关联程序 第4章 SystemV的进程间通信 4.1 实验目的 4.2 背景知识 4.2.1 SystemV的进程间通信机制 4.2.2 消息队列 4.2.3 信号量 4.2.4 共享主存 4.3 实验内容 4.3.1 实验1 消息队列实现进程间通信 4.3.2 实验2 信号量实现进程同步 4.3.3 实验3 基于信号量采用多线程技术实现进程同步 4.3.4 实验4 共享主存实现进程间通信 第5章 Shell程序设计 5.1 实验目的 5.2 背景知识 5.2.1 Shell简介 5.2.2 Shell的主要功能 5.2.3 Shell主要功能的实现 5.2.4 Shell编程 5.3 实验内容 5.3.1 实验1 编写一个简单的Shell程序——MyShell 5.3.2 实验2 基于Shell的网络管理 第6章 页面替换算法 6.1 实验目的 6.2 背景知识 6.2.1 存储管理的目的和功能 6.2.2 存储管理涉及的基本概念 6.2.3 实存管理的原理和实现技术 6.2.4 虚存管理的原理和实现技术 6.3 实验内容 6.3.1 实验1 模拟实现动态分区存储管理 6.3.2 实验2 模拟实现请求分页虚存页面替换算法 第7章 文件系统的设计与实现 7.1 实验目的 7.2 背景知识 7.2.1 文件系统的基本概念 7.2.2 文件管理的数据结构 7.2.3 Ext2文件系统 7.3 实验模拟实现一个Linux文件系统 7.3.1 实验说明 7.3.2 解决方案 7.3.3 主要功能模块设计 7.3.4 程序框架 第8章 时钟与定时器 8.1 实验目的 8.2 背景知识 8.2.1 定时器机制的概念 8.2.2 时间维护 8.2.3 定时器 8.3 实验内容 8.3.1 实验1统计进程时间 8.3.2 实验2通过alarm( )实现sleep( )函数功能 8.3.3 实验3基于单定时器实现任意数目的逻辑定时器 第9章 网络通信编程 9.1 实验目的 9.2 背景知识 9.2.1 网间进程通信概念 9.2.2 网间进程通信协议 9.2.3 套接字编程 9.3 实验内容 9.3.1 实验1 UDP通信 9.3.2 实验2 基于TCP的客户/服务器程序 第10章 事件驱动编程 10.1 实验目的 10.2 背景知识 10.2.1 视频游戏的概念 10.2.2 curses库的历史 10.2.3 使用curses库 10.3 实验内容 10.3.1 实验1 利用curses库实现弹球游戏 10.3.2 实验2 利用多线程实现弹球游戏 第11章 综合实验:一个小型远程访问FTP服务系统 11.1 实验目的 11.2 背景知识 11.2.1 客户/服务器计算模型 11.2.2 中间件 11.2.3 FTP技术简介 11.3 综合实验功能设计 11.4 综合实验解决方案 11.4.1 服务器端接收客户请求的套接字结构 11.4.2 客户端发送套接字连接请求的核心代码 11.4.3 与线程处理相关的核心函数 11.4.4 接收客户请求与实现客户会话的线程 11.4.5 文件管理 11.4.6 套接字通信 11.5 综合实验程序框架 11.5.1 客户端代码框架 11.5.2 服务端代码框架 第12章 内核模块 12.1 实验目的 12.2 背景知识 12.2.1 内核模块概述 12.2.2 内核模块编程 12.2.3 内核模块机制的实现 12.3 实验内容 第13章 中断与系统调用 13.1 实验目的 13.2 背景知识 13.2.1 中断机制 13.2.2 系统调用的概念 13.2.3 系统调用的执行流程 13.2.4 新系统调用机制sysenter/sysexit 13.3 实验内容 第14章 同步机制 14.1 实验目的 14.2 背景知识 14.2.1 进程同步和同步机制 14.2.2 Linux内核的并发性和同步机制 14.3 实验内容 第15章 进程调度 15.1 实验目的 15.2 背景知识 15.2.1 调度策略和调度机制 15.2.2 Linux 2.4的调度算法及其不足 15.2.3 Linux 2.6调度算法的设计与实现 15.3 实验内容 第16章 存储管理 16.1 实验目的 16.2 背景知识 16.2.1 x86的分段机制 16.2.2 物理存储管理 16.2.3 进程虚拟存储管理 16.2.4 slab分配器 16.3 实验内容 第17章 虚拟文件系统 17.1 实验目的 17.2 背景知识 17.2.1 虚拟文件系统的基本概念和原理 17.2.2 文件系统的安装和挂载 17.2.3 虚拟文件系统的结构和通用文件模型 17.3 实验内容 第18章 proc文件系统 18.1 实验目的 18.2 背景知识 18.2.1 proc文件系统简介 18.2.2 proc文件系统数据结构 18.3 实验内容 18.3.1 实验1 向proc文件系统中添加可读写文件 18.3.2 实验2 通过proc文件系统查看进程信息 第19章 设备驱动程序 19.1 实验目的 19.2 背景知识 19.2.1 基础知识 19.2.2 字符设备 19.2.3 块设备 19.2.4 磁盘I/O调度程序 19.3 实验内容 附录 附录A vi编辑器 附录B emacs编辑器 附录C Linux常用命令 附录D Linux函数 附录E 操作系统实验报告内容 参考文献

编辑推荐

《高等学校计算机实践教学系列教材:Linux操作系统实验教程》内容丰富、覆盖面广,由浅入深、循序渐进,可与高等教育出版社出版的《操作系统教程(第4版)》教材配套使用,也可作为操作系统课程的实验教材单独使用,既可以作为高等学校计算机相关专业实验课用书,也可作为Linux应用和内核编程参考资料。

作者简介

《高等学校计算机实践教学系列教材:Linux操作系统实验教程》是操作系统实验课程教材,以Linux 2.6内核版本为平台,精心设计系列实验题目,每个(组)实验题目包括:实验目的、背景知识和实验内容,在每个具体的实验内容中又包括实验说明、解决方案和程序框架,为操作系统实践教学提供指导。


 Linux操作系统实验教程下载



发布书评

 
 


 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024