书部落-计算机PDF电子书之家 » 操作系统 » 中山大学课件——Windows操作系统原理


2008-7-13 20:04 huaezi
中山大学课件——Windows操作系统原理

<P>
M0c)b7Z2G"g2I%y <TABLE cellSpacing=1 cellPadding=10 width="99%" align=center border=0>
ofI Q$~Dc6D;[ <TBODY>
6[K_:XO[@j <TR>
'?K\ vL3[Qg _ <TD bgColor=#d0e7fd><B>课程名称:</B>Windows操作系统原理  &nbsp;<B>课程类别:</B>必修 <BR><B>编者姓名:</B>印鉴、陈国明      <B>单位:</B>计算机科学系<BR><B>主审姓名:</B>印鉴          <B>单位:</B>计算机科学系<BR><B>授课对象:</B>本科生         <B>专业:</B>计算机科学与技术<BR><B>编写日期:</B>2004年3月</TD></TR>
P-\$Nl}Pi&a[ <TR>"PD7Phc-]"c
<TD><BR><SPAN class=titletxt>一、教学目的和要求:</SPAN><BR><B>1.本课程的地位和教学目的</B><BR>操作系统是计算机系统的核心软件,它是连接计算机硬件和软件的纽带。操作系统课程是计算机各专业的必修课和主干课之一。它在学生的计算机专业知识结构中有着重要的地位和作用,它为学生学习以后的各主要课程(如计算机网络、数据库系统、分布式计算机系统、软件工程等)的学习打下扎实的基础。本课程将操作系统一般原理与分析windows操作系统体系结构相结合。 <BR>本课程的目的是使学生系统掌握操作系统的基本理论、设计方法和实现技术。<BR><BR><B>课程基本要求</B><BR>(1)熟悉操作系统的用户界面(命令、图形、系统调用等);<BR>(2)了解操作系统的分类、功能、结构及其在计算机系统中的地位和作用;<BR>(3)掌握操作系统的基本理论、设计方法和实现技术;<BR>(4)具有初步的操作系统开发和维护能力。<BR><A id=c2></A><BR><SPAN class=titletxt>二、课程内容、重点和学时安排</SPAN><BR>V_Z+U:m&ze
<TABLE cellSpacing=1 cellPadding=5 width="100%" bgColor=#a4c169 border=0>[%^)B ^l"xz*XU
<TBODY>?J]{&p w
<TR>[:Y5w:~t6_!Dm
<TD vAlign=top bgColor=#ffffdd><A id=c21></A><B>第1章 操作系统概述 (4学时)</B><BR>1.计算机系统概观<BR>2.操作系统的概念<BR>3.操作系统的功能<BR>4.操作系统简史<BR>5.操作系统分类<BR>6.Windows操作系统的发展历程<BR><BR><B>本章重点:</B><BR>1.操作系统的定义、特征与地位<BR>2.操作系统的五大管理功能<BR>3.Windows操作系统的发展历程<BR></TD>
Y)m7u.E,n!p&B <TD vAlign=top bgColor=#ffffdd><A id=c22></A><B>第2章 Windows2000/XP的体系结构(4学时)</B><BR>1.操作系统的设计<BR>2.Windows2000/XP的操作系统模型<BR>3.Windows2000/XP的体系结构<BR>4.Windows2000/XP的系统机制<BR>5.Windows2000/XP的注册表与服务<BR>6.Windows2000/XP的管理机制<BR><BR><B>本章重点:</B><BR>1. 常见操作系统体系结构及特点<BR>2. Windows管理机制WMI作用及构成情况<BR></TD></TR>2kO3I6x S3Q^g
<TR>a%iY%o_6fw
<TD vAlign=top bgColor=#ffffdd><A id=c23></A><B>第3章 进程和处理器管理(18学时)</B><BR>1.进程<BR>2.进程控制<BR>3.线程<BR>4.进程互斥和同步<BR>5.进程间通信<BR>6.死锁问题<BR>7.处理器调度概述<BR>8.调度算法<BR>9.Windows2000/XP的线程调度<BR><BR><B>本章重点:</B><BR>1. 五状态进程模型、挂起进程模型<BR>2. 进程互斥的软硬件方法<BR>3. 信号量与P、V原语实现进程的同步和互斥<BR>4. 死锁的检测与避免<BR>5. 几种典型的调度算法<BR></TD>j7I/w8u-yQ9G E
<TD vAlign=top bgColor=#ffffdd><A id=c24></A><B>第4章 存储体系(14学时)</B><BR>1.存储管理的基本原理<BR>2.Windows2000/XP内存管理<BR>3.Windows2000/XP外存管理<BR>4.Windows 2000/XP高速缓存管理<BR><BR><B>本章重点:</B><BR>1. 分区式管理原理<BR>2. 段式、页式、段页式管理原理<BR>3. 覆盖和交换技术<BR>4. 磁盘调度算法<BR></TD></TR>5y]5y-TNN
<TR>6iM ?ujvg
<TD vAlign=top bgColor=#ffffdd><A id=c25></A><B>第5章 文件系统(4学时)</B><BR>1.文件概念与实现<BR>2.目录概念与实现<BR>3.文件系统<BR>4.WindowsFSD体系结构<BR>5.Windows文件系统概述<BR>6.NTFS设计目标与高级特性<BR>7.NTFS文件系统驱动程序<BR>8.NTFS磁盘结构<BR>9.NTFS可恢复性支持、坏簇恢复支持、安全性支持<BR><BR><B>本章重点:</B><BR>1.文件空间分配与管理<BR>2.文件目录结构<BR>3.NTFS文件系统<BR></TD>
#au7HwYq8y <TD vAlign=top bgColor=#ffffdd><A id=c26></A><B>第6章 I/O系统(4学时)</B><BR>1.I/O系统概述<BR>2.I/O软件的组成<BR>3.Windows2000/XP的I/O系统结构和模型<BR>4.Windows2000/XP的I/O系统的数据结构<BR>5.Windows2000/XP的I/O的设备驱动程序<BR>6.Windows2000/XP的I/O处理<BR><BR><B>本章重点:</B><BR>1. 假脱机系统、中断技术<BR>2. Windows2000/XP的驱动程序<BR></TD></TR>^]q ~,?1W ZVfI
<TR>]Xay0a,} V5E?
<TD vAlign=top bgColor=#ffffdd><A id=c27></A><B>第7章 网络(4学时)</B><BR>1.网络基本原理<BR>2.Windows 2000网络体系结构<BR>3.Windows2000的层次化网络服务<BR><BR><B>本章重点:</B><BR>1. OSI参考模型、TCP/IP参考模型<BR>2. Windows套接字<BR>3. 网络负载平衡与分布式文件系统<BR></TD>
r__9`1r9R3^M <TD vAlign=top bgColor=#ffffdd><A id=c26></A><B>第8章 Windows应用程序设计(4学时)</B><BR>1.Win32API<BR>2.Windows应用程序设计模式<BR>3.Windows应用程序的基本结构<BR>4.结构化异常处理<BR>5.动态链接库<BR><BR><B>本章重点:</B><BR>1. Win32API函数分类<BR>2. Windows编程特点<BR>3. 动态链接库<BR></TD></TR>
F;V2q`}lk&j <TR>SN3nDt @5c|~ i
<TD vAlign=top bgColor=#ffffdd><A id=c29></A><B>第9章 Windows设备驱动程序设计(4学时)</B><BR>1.Windows2000/XP的设备驱动程序<BR>2.WDM的核心概念和数据结构<BR>3.WDM驱动程序的结构<BR>4.WDM驱动程序的编程<BR><BR><B>本章重点:</B><BR>1. Windows2000/Xp驱动程序 模型WDM <BR>2. WDM驱动程序的编程 </TD>
mS1Ds1| TI)v <TD vAlign=top bgColor=#ffffdd></TD></TR></TBODY></TABLE><BR><A id=c3></A><SPAN class=titletxt>三、实验(20小时)</SPAN><BR><B>1.实验目的</B><BR>通过实验使学生获得对操作系统原理的感性认识,使学生真正理解计算机系统中硬件和软件的联系和区别,理解操作系统的动态性和整体性,并培养学生对操作系统这一重要系统软件的分析和设计能力。 <BR><B>2.实验要求</B><BR>上机实验则由专门的辅导教师辅导。<BR><B>3.实验内容</B><BR><A id=c31></A>
6KK |5N8iC <TABLE cellSpacing=1 cellPadding=5 width="100%" bgColor=#7baad5 border=0>
,~Z nQJ+])z+S <TBODY>
#CJ+s%b,O9~:i7[6P*bb <TR>
b^,~&LIY"U5Y%P"e <TD bgColor=#e2f1ff>实验1:进程同步,读者写者问题。<BR>实验要求<BR>在Windows 2000环境下,创建一个包含n个线程的控制台进程。用这n个线程来表示n个读者或写者。每个线程按相应测试数据文件的要求,进行读写操作。用信号量机制分别实现读者优先和写者优先的读者-写者问题。读者-写者问题的读写操作限制:<BR>1)写-写互斥。<BR>2)读·写互斥。<BR>3)读·读允许。<BR>读者优先的附加限制:如果一个读者申请进行读操作时已有另一读者正在进行读操作,则该读者可直接开始读操作。<BR>写者优先的附加限制:如果一个读者申请进行读操作时已有另一写者在等待访问共享资源,则该读者必须等到没有写者处于等待状态后才能开始读操作。 <BR>运行结果显示要求:要求在每个线程创建、发出读写操作申请、开始读写操作和结束读写操作时分别显示一行提示信息,以确信所有处理都遵守相应的读写操作限制。 </TD></TR></TBODY></TABLE><BR><A id=c32></A>
hxNl]BU!E <TABLE cellSpacing=1 cellPadding=5 width="100%" bgColor=#7baad5 border=0>&v y3\rtU7^[
<TBODY>*_:z"J5w1f `)C
<TR> gL!BrX9W2|{Vr
<TD bgColor=#e2f1ff>实验2:内存管理<BR>实验要求<BR>在本次实验中,需要从不同的侧面了解Windows 2000/XP的虚拟内存机制。在Windows<BR>2000/XP操作系统中,可以通过一些APl操纵虚拟内存。主要需要了解以下几方面:<BR>Windows2000/XP虚拟存储系统的组织。<BR>如何控制虚拟内存空间?<BR>如何编写内存追踪和显示工具?<BR>详细了解与内存相关的API函数的使用。<BR>使用Windows 2000/XP的API函数,编写一个包含两个线程的进程,一个线程用于模拟内存括动,一个线程用于跟踪第一个线程的内存行为,而且要求两个线程之间通过信号量实现同步。模拟内存活动的线程可以从一个文件中读出要进行的内存操作。 </TD></TR></TBODY></TABLE><BR><A id=c33></A>
u8P3gi3?;h <TABLE cellSpacing=1 cellPadding=5 width="100%" bgColor=#7baad5 border=0>*A(xu'bd5n nM
<TBODY>
3GUcV\5E*kY:w <TR>/[JR)eU n4h
<TD bgColor=#e2f1ff>实验3:快速文件系统<BR>众所周知,CPU是整个计算机系统中运算速度最快的部分,而外部设备是最慢的部分,它们之间存在着很大的差别。然而,CPU却时时刻刻可能要求访问外设。如果CPU的每次操作都必须等待外设完成,那么CPU宝贵的运行时间就会大大浪费。随着现代计算机技术的发展,大多数现代操作系统都对这个问题进行了处理。下面就介绍两种Windows 2000中解决这个不匹配问题的方法:高速缓存和异步传输。 <BR>设计一个函数intfilter(charsource,char*sink,intf)<BR>·source:源文件,即从哪个文件读。<BR>·sink:目标文件,即写到哪个文件。<BR>.f:一个对文件的操作(可以指定任何操作)。<BR>分别用三种方法来实现一个对文件的操作:<BR>其中:<BR>1)无缓冲方式:表示用的标志位是FILE_FLAG_NO BUFFERING。<BR>2)缓冲方式: 表示用的标志位是FILE_FLAG_SEQUENTIAL_SCAN。<BR>3)异步方式: 表示用的标志位是FILE_FLAG_OVERLAPPED。<BR></TD></TR></TBODY></TABLE><BR><A id=c34></A>CZB:S6f4v
<TABLE cellSpacing=1 cellPadding=5 width="100%" bgColor=#7baad5 border=0>k+hI`.Q#v/z u
<TBODY>
;NQ8ml7bTs6H <TR>
-^&u._q0Iu?/k!iwc <TD bgColor=#e2f1ff>实验4:软盘I/O<BR>本实验着重于了解磁盘的物理组织,以及如何通过用户态的程序直接读写磁盘上的信息,针对软盘(Windows2000/XP,MS-DOS环境)进行实验,实验的具体过程: <BR>1)判定逻辑驱动器A中磁盘的基本信息。<BR>2)根据给定的物理扇区号读取磁盘的扇区。<BR>3)把磁盘上得到的信息输出到标准输出流中。<BR>要求:<BR>编写程序调用physicalDisk、sectorRead和segmentDump三个函数,并验证其正确性。<BR>HANDLE physicalDisk(char deviceletter);<BR>int SectorRread(HANDLE hdevice,unSigned int logicalSectorNumber,void *buffer)<BR>void sectorDump(HANDLE hdevice,unsigned int logicalSectorNumber);<BR>1)根据输入的驱动器号读取磁盘基本信息(对其他磁盘(如硬盘)也可行),<BR>2)根据输入的扇区号读扇区内容。<BR>3)输出所读扇区的内容。<BR>也是要实现查看磁盘信息、查看指定扇区内容的作用。<BR></TD></TR></TBODY></TABLE><BR><A id=c35></A>JgyDC4f{G
<TABLE cellSpacing=1 cellPadding=5 width="100%" bgColor=#7baad5 border=0>
$n~8u:Ha:QPQ <TBODY>
n!jN-et N <TR>&N$Y9x|&A'@)@
<TD bgColor=#e2f1ff>实验5:Winsock网络通信<BR>通过WinSock编程实现网络通信。具体形式为面向连接的TCP客户机-服务器模式;在两台机器(在一台机器上也可)上依次启动服务器、客户端;在客户端输入正确的服务器地址后确认连接是否成功,若成功则可以在客户端和服务器之间实现互相收发数据(任何一端都可以是:发送端,相应地也可以是接收端),并且都可以用特定字符串控制退出(这里用的是bye);同时客户端与服务器应该能实时地检测到对方的运行状态,并且对特定状态(如退出)做出正确的反应行为(假设服务器退出,则客户端在侦测到此情况时应当自动给出提示信息并退出;假设客户端退出,则服务器在侦测到此情况时也应当自动给出提示信息,并关闭此次连接,准备接受下一个连接)。 <BR>实验环境<BR>本实验要求在VC++5.0、VC++6.0或者其他更高或兼容版本的编程环境下进行。要求使用WinSock2.0库,为了编程方便,可以把wsock32.1ib包括进工程。 </TD></TR></TBODY></TABLE><BR><A id=c36></A>
8m t9Gc v/} N.F%I <TABLE cellSpacing=1 cellPadding=5 width="100%" bgColor=#7baad5 border=0>qe`#v)Z?
<TBODY>8r_7Z}?i
<TR>
[&E%A/uQ9E <TD bgColor=#e2f1ff>实验6:Windows应用程序与动态链接库<BR>Windows应用程序的运行需要依靠外部发生的事件来驱动。应用程序通过输入消息来接收输入。操作系统负责监视所有设备并将输入消息放人一个先进先出的队列中,即系统消息。户移动鼠标或敲击键盘时,产生的消息首先进入系统消息队列。Windows从系统消息队列中每次取走一条消息,确定目的窗口,并将消息送人创建该窗口的应用程序的消息队列。应用程序通过应用程序队列来接收输入,它通过一个称为消息循环的控制结构将检索到的消息发送给相应的窗口,由该窗口的窗口函数负责对消息进行相应的处理。每个Windows应用程序都必须有一个WinMain函数,它是程序的人口点。 <BR>动态链接库(DLL),就是一个可执行程序模块,模块中包含了可以被其他应用程序或其他DLL共享的程序代码和资源。 <BR>编写一个Windows应用程序,要求产生一个简单的窗口。在该窗口的菜单栏中有一个Menu,其中包含三个菜单项:Menul、Menu2和Exit。单击菜单项Menul,在窗口的客户区显示"Hello from menul";单击Menu2,在窗口的客户区显示"Hello from menu2";单击Exit,退出程序。 <BR>编写一个DLL,其中含有两个函数Funcl和Func2可供应用程序调用,这两个函数的功能均为返回一个字符串。Funcl返回的字符串是"Hello from Func1…"其中"…"为调用该函数的应用程序的名称与路径。Func2返回的字符串与此相似. <BR>修改第一项创建的应用程序,使得当单击菜单项Menul时调用第2项创建的DLL中的Funcl返回的字符串,并将其显示在窗口的客户区中。单击菜单项Menu2时调用Func2,并完成类似的操作。 <BR>要求使用C编程,不允许使用MFC,以便体会Windows应用程序的消息机制。<BR></TD></TR></TBODY></TABLE><BR><A id=c37></A>#X0fD-P7P kk2Y
<TABLE cellSpacing=1 cellPadding=5 width="100%" bgColor=#7baad5 border=0>
9l+M~r(u&k;B <TBODY>
,D"\+|AVZ <TR>"| ^!jc3U+Lij^
<TD bgColor=#e2f1ff>实验7:Wdm驱动程序开发<BR>实验目的<BR>过本程序实验,了解Windows驱动程序(以Windows 2000驱动程序为代表)的开发过程,<BR>为进-步的学习打下基础。本实验所要达到的目标:掌握Windows驱动程序结构,了解WDM驱动程序模型的特点及其核心概念、数据结构和函数接口;构造驱动程序开发环境;编写简单的win32驱动程序,通过建立的环境进行编译、链接、安装和调试;最后通过编写Win32测试程序了解驱动程序编程接口。 <BR>实验过程<BR>1. 构造WDM驱动程序开发环境<BR>2. 安装MicrosoftWindows2000DDK(DriverDevelopmentKits)。<BR>3. 配置开发环境 <BR></TD></TR></TBODY></TABLE><BR><A id=c38></A>9NJ:r[+Z3gZzg9aj
<TABLE cellSpacing=1 cellPadding=5 width="100%" bgColor=#7baad5 border=0>/kyd[C:PD@
<TBODY>
Mm`#hm <TR>M1N(MD9u"hI
<TD bgColor=#e2f1ff>实验8:文件系统驱动程序设计<BR>文件系统驱动程序(file system driver,FSD)是一种高层内核模式驱动程序,它用来扩展低层驱动程序的功能,实现特定的文件系统,为用户提供在特定存储介质上存储信息以及从这些存储介质中取回信息的方法。虽然FSD主要用于实现基于物理存储介质的文件系统,但是FSD也可以用于实现更多的东西,如网络文件系统和基于虚拟设备的文件系统等。 <BR>在讨论文件系统驱动程序原理的基础上,设计了一个基于虚拟设备的文件系统,通过编 <BR>写驱动程序实现用文件来模拟磁盘,目前流行的虚拟光驱软件利用的就是这一原理。本章只提供程序的框架而不提供完整的源代码,希望由学生自行完成实验 </TD></TR></TBODY></TABLE><BR><A id=c39></A>
H"Aj0C\n7I <TABLE cellSpacing=1 cellPadding=5 width="100%" bgColor=#7baad5 border=0>
-Tp*`SWq$cLs <TBODY>1D@C"t\s
<TR>
y1MIs#yM5KH <TD bgColor=#e2f1ff>实验9:NDIS协议驱动程序设计<BR>随着网络技术的日益发展,与网络相关的硬件和软件技术都在并行前进,网络驱动程<BR>硬件与软件的中介显得越来越重要。在讨论NDIS驱动程序原理和操作系统中数据包传输机制的基础上,设计一个比较健壮的NDIS协议驱动程序和上层应用程序。NDIS协议驱动 <BR>DDK作为编译环境,源代码用C语言完成。 </TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></P>
%{.m9ae!qXX
y&fa}&V:s$Q [[i] 本帖最后由 huaezi 于 2008-7-13 20:06 编辑 [/i]]

2008-9-25 20:34 sanyuan2001
很棒!

楼主很有诚意。赞一个!:)

2008-12-14 21:33 jackfly2008
很不错啊!谢谢楼主!也很清楚的幻灯片

2008-12-23 10:53 gjzyn96282
好书,喜欢!找了很久的收!

页: [1]


Powered by Discuz! Archiver 5.0.0  © 2001-2006 Comsenz Inc.