操作系统实验教程(高等院校计算机实验与实践系列示范教材)
分類: 图书,计算机/网络,操作系统/系统开发,其他,
作者: 张坤,姜立秋,赵慧然编著
出 版 社: 清华大学出版社
出版时间: 2008-6-1字数: 414000版次: 1页数: 259印刷时间: 2008/06/01开本: 16开印次: 1纸张: 胶版纸I S B N : 9787302177340包装: 平装编辑推荐
站在工程、开发和研究三个角度.进行实践性教学环节的设计。
从社会对计算机专业人才的能力需求的角度,系统地规划计算机实验和实践的方式和内容。
开发实训验证型、开发研究型等不同层次的教学内容,以满足从大专、本科以及某些研究生层次的教学需求。
以系统性、开放性、经典性和适用性等全新的面貌呈现在中国的计算机教学领域。
精心挖掘和遴选作者,把他们多年积累的教学经验编写成教材。
每本书都经过编委会委员的精心筛选和严格评审,严把质量关。
内容简介
本书是“操作系统”课程的辅助教材,通过其中的实验可加深对本课程概念的理解。全书共分为10章,从设计一个简单的操作系统引导程序开始,指导学生初步理解操作系统的设计原理和过程,使学生能够掌握简单的Shell编程,掌握进程、线程、进程管理、进程调度和进程通信等基本概念和技术,掌握内存管理基本概念和技术,掌握文件操作和磁盘调度的基本原理。
本书的实验以Linux操作系统为主。因为Linux是开放源码的,因此,在本书附录中给出了Linux0.11的部分源码分析,可以让读者得以一窥操作系统的内部实现机制。
书中的实验题目具有独立性,并且对每个实验中用到的知识,在前面都给予描述和指导,这样有利于读者通过自学掌握实验教程中的技术和方法。
本书可作为高等院校计算机及相关专业“操作系统”课程实验的辅助教材,也可作为读者学习操作系统技术的实验指导教程。
目录
第1章 引导操作系统的过程
1.1 实验目的
1.2 预备知识
1.3 实验内容
1.3.1 简单汇编程序设计
1.3.2 查看启动记录
1.3.3 修改启动记录
1.3.4 用NASMW编译一个自己的启动程序(.bin文件)
第2章 Linux基本环境
2.1 实验目的
2.2 预备知识
2.2.1 Linux的安装
2.2.2 Linux 命令行(Shell环境)
2.2.3 文件系统命令
2.2.4 用户及系统管理常用命令
2.2.5 网络操作常用命令
2.2.6 Linux下软件安装
2.2.7 使用编辑器vi 编辑文件
2.2.8 GCC编译器
2.2.9 Gdb调试器
2.2.10 编写包含多文件的Makefile
2.3 实验内容
2.3.1 Linux基本操作练习
2.3.2 Makefile的应用
第3章 Shell编程
3.1 实验目的
3.2 预备知识
3.2.1 Shell概述
3.2.2 Shell的特点和命令行书写规则
3.2.3 常用Shell类型
3.3 实验内容
3.3.1 简单Shell 程序设计
3.3.2 Shell脚本的建立和执行
3.3.3 Shell变量
3.3.4 Shell中的特殊字符
3.3.5 表达式的比较
3.3.6 控制结构
3.3.7 综合应用
第4章 进程管理
4.1 实验目的
4.2 预备知识
4.2.1 进程相关基本概念
4.2.2 Linux下系统调用
4.2.3 Windows下的系统调用
4.2.4 进程调度算法
4.3 实验内容
4.3.1 进程的创建
4.3.2 进程的控制
4.3.3 文件的加锁、解锁
4.3.4 Windows下的进程管理
4.3.5 进程调度模拟算法
第5章 进程间通信
5.1 实验目的
5.2 预备知识
5.2.1 管道
5.2.2 消息
5.2.3 共享内存
5.2.4 信号机制
5.3 实验内容
5.3.1 进程的管道通信
5.3.2 消息的创建、发送和接收
5.3.3 共享存储区的创建、附接和段接
5.3.4 消息队列和共享存储区性能比较
5.3.5 信号机制举例
第6章 进程(或线程)同步与多线程编程
6.1 实验目的
6.2 预备知识
6.2.1 进程(或线程)同步概述
6.2.2 线程概述
6.3 实验内容
6.3.1 生产者消费者问题
6.3.2 进程、线程综合应用
第7章 死锁避免——银行家算法
7.1 实验目的
7.2 预备知识
7.2.1 死锁的概念
7.2.2 死锁预防
7.2.3 死锁避免
7.3 实验内容
7.3.1 实现银行家算法所用的数据结构
7.3.2 银行家算法
7.3.3 源程序清单
7.3.4 设计输入数据、验证银行家算法
第8章 存储管理
8.1 实验目的
8.2 预备知识
8.3 实验内容
8.3.1 可变分区主存分配和回收
8.3.2 请求页式存储管理
第9章 文件操作
9.1 实验目的
9.2 预备知识
9.3 实验内容
第10章 磁盘调度
10.1 实验目的
10.2 预备知识
10.3 实验内容
附录A 80386基础
附录B 操作系统练习题与参考答案
附录C 综合测试题及其参考答案
附录D 操作系统自测题
附录E Linux0.11系统引导程序
附录F Linux0.11进程调度
附录G Linux0.11中信号的处理
附录H Linux0.11的内存管理
参考文献
书摘插图
第1章引导操作系统的过程
1.1 实验目的
1.通过简单汇编程序设计及DEBUG调试程序的使用,了解学习操作系统课程必备的基础知识(计算机体系结构、CPU、内存、BIOS等)。
2.能够在软盘上创建一个简单的系统引导程序。
1.2预备知识
本节通过学习DOS的启动程序,了解操作系统的启动顺序,然后仿照DOS的启动程序设计自己的启动程序。
首先说明当按下电源按钮后,计算机都做了什么?
当按下计算机电源按钮时,同这个按钮相连的电线就会送出一个电信号给主板,主板将此电信号传给供电系统,供电系统开始为整个系统供电,同时送出一个电信号给BIOS(基本输入输出系统),通知BIOS供电系统已经准备完毕。随后,BIOS启动一个程序,进行主机自检。主机自检的主要工作是确保系统的每一部分都得到了电源支持,内存储器、主板上的其他芯片、键盘、鼠标、磁盘控制器及一些I/O端口正常可用。此后,自检程序将控制权交还给BIOS。
此时,BIOS开始启动操作系统。
BIOS首先访问启动盘的第1个扇区(0磁道,1扇区,一共是512字节),这一部分称为DOS启动记录(DOS Boot Record,DBR)。BIOS将这第一扇区中的内容调入内存的0x7c00地址处,然后BIOS把控制权限交给这段引导程序。这是启动系统的第一关,引导程序通常会简单地执行一些指令,如输出一段文字、显示一个启动界面等。但最重要的是,引导程序将会启动一个更大的程序——操作系统内核。之后,系统将控制权交给操作系统。
现在我们的任务就是写这样一个引导程序,用它来引导(或者称为启动)计算机。引导程序有如下两个特点。
……