操作系统实验指导书

  • 格式:doc
  • 大小:3.21 MB
  • 文档页数:35

操作系统实验指导书实验一基本操作命令实践 2 实验二、Linux基础命令实验 5 实验三、linux进程管理实验 8 实验四、Windows进程管理实验 9 实验五、进程间通信机制 11 实验六、处理机调度实践 14 实验七、内存管理机制实验 31 实验八、Linux内存管理实验 34理学院物理与电子科学系王小妮编写实验一基本操作命令实践一、实验目的1、配合操作系统课程的学习,加深操作系统提供命令接口的功能的理解。

二、实验内容1、操作实践最常见的操作系统管理的一些命令。

三、实验步骤在操作系统Windows XP或2000及Windows Server 2003下,操作以下命令。

1、最基本、最常用的测试物理网络连通性的命令ping,ping命令用于确定本地主机是否与网络上另外一台主机连通。

格式:ping IP 地址命令选项例如:ping 192.168.0.8 –t –l 2048 –n 8解释: -t表示一直发包,直到被用户用Ctrl+C中断为止。

-l表示发送的数据包的大小。

本例为2048-n表示发几个就停止发包。

本例为8个。

2、查看DNS、IP地址、MAC地址的命令ipconfig。

格式:ipconfig 命令选项例如:ipconfig -all解释: -all选项会看到Windows IP Configuration和Ethernet Adapter信息,包括IP地址、DNS及MAC地址。

3、查看DNS与IP地址命令nslookup,它主要用于解析一个域名所对应的IP地址。

格式:nslookup 主机域名例如:nslookup解释:查看缺省DNS服务器及其IP地址。

4、网络信使命令net send。

格式:net send 计算机名/IP地址传播的消息例如:net send 210.30.103.121 hello解释:发送消息“hello”给IP地址为210.30.103.121的机器。

停止网络信使服务的命令为net stop messenger,开始网络信使服务的命令为net start messenger.5、探测对方计算机名、所在的组、域及当前用户名的命令nbtstat.格式:nbtstat -a IP 地址例如:nbtstat -a 192.168.0.6解释:探测192.168.0.6计算机名、所在的组、域及当前用户名。

6、显示计算机当前开发的。

所有端口的命令netstat。

格式:netstat -a例如:netstat -a解释:显示计算机当前开放的所有端口。

7、探测ARP绑定列表命令arp。

格式:arp选项例如:arp -a解释:显示所有连接了本地计算机的对方计算机的IP和MAC地址。

例如:arp –s 192.168.10.59 00-50-FF-6C-08-75解释:绑定IP和MAC地址,解决局域网内盗用IP。

例如:arp –d 00-50-FF-6C-08-75 192.168.10.59解释:解除网卡MAC地址和IP的绑定。

8、net系列命令的使用。

格式:net 命令例如:net view IP地址解释:显示当前工作组服务器列表,当使用本命令时,它就会显示当前域或网络上的计算机上的列表。

例如:net use z://192.168.10.8/movie解释:将这个192.168.10.8的movie共享目录映射为本地的Z盘。

例如:net session解释:记录链接情况,包括计算机、用户名、客户类型和打开空闲时间。

例如:net share解释:查看机器的共享资源。

例如:net share c$ /dnet share d$ /dnet share ipc$ /dnet share admin$ /d解释:手工删除共享。

例如:net share mymovie=e:\downloads\movie/users;1解释:增加一个共享mymovie。

同时限制链接用户数为1人。

9、路由跟踪命令tracert及pathping。

格式:tracert 选项或pathping选项例如:tracert 或pathping 解释:显示了连接所经过的路由。

10、设置开机密码命令syskey。

格式:syskey解释:设置开机密码。

11、远程桌面连接命令mstsc。

格式:mstsc解释:调出建立远程桌面连接的对话框。

12、本地服务设置命令services.msc。

格式:services.msc解释:调出服务设置窗口、对服务进行相应的设置,如启动服务、终止服务。

实验二 Linux基础命令实验一、实验目的1、通过本实验了解Linux基本命令。

2、理解面向操作命令的接口shell。

3、学会使用Linux下的常用编辑器vi。

4、学会使用Linux编译器gcc。

二、实验内容1、学习使用文件目录。

2、编辑器vi命令,在vi下编辑文件。

3、学会使用Linux编译器gcc。

三、实验步骤1、登录及退出系统(1)login(登录系统)命令格式:login [name][选项]说明:选项:-p:通知login保持现在的环境参数。

-h:用来向远程登录的用户之间传输用户名。

例:localhost login:rootpassword;输入用户名后回车,提示password,等待输入密码。

(2)shutdown(退出系统)命令格式:shutdown [选项] 时间[警告]例:立即关闭系统:#shutdown now利用信息提示,提示用户5分钟后进入维护模式:#shutdown +5 ”System will shutdown after 5 minutes”立即关闭系统并重启:#shutdown –r now定时于23:59重新启动:#shutdown –r 23:59 &2、文件与目录的操作(1)ls(文件显示)命令格式:ls [选项][目录或是文件]说明:对于每个目录,该命令将列出其中的所有子目录与文件。

对于每个文件,ls将输出其文件名以及所要求的其他信息。

默认情况下,输出条目按字母顺序排序。

当未给出目录名或是文件名时,就显示当前目录的信息。

例:以长格式显示当前目录中所有文件的详细信息:#ls –l以长格式显示指定目录xh的信息:#ls –ld xh显示当前目录下的所有子目录与文件,包括隐藏文件:#ls –a(2)cp(拷贝文件)命令格式:cp[选项]源文件或目录目标文件或目录说明:该命令把指定的源文件复制到目标文件或把多个源文件复制到目标目录中。

例:将当前目录下的文件file1.txt复制成file2.txt:#cp file1.txt file2.txt(3)rm(删除文件或目录)命令格式:rm [选项] 文件…例:删除当前目录下的文件file1.txt:#rm file1.txt3、vi的操作模式(1)命令模式任何时候,只要按下Esc键,即可使vi进入命令模式;我们在shell环境(提示符为$)下输入启动vi命令,进入编辑器。

(2)插入模式在命令模式下输入插入命令i、附加命令a、打开命令o、修改命令c、取代命令r或替换命令s 抖可以进入文本输入模式。

在该模式下,用户输入的任何字符都被vi当前文件内容保存起来,并将其显示在屏幕上。

在文本输入过程中,若想回到命令模式下,按Esc键即可。

(3)末行模式在命令模式下输入某些特殊字符,如“/”,“?”,“:”,可进入末行命令模式。

在该模式下可储存或离开编辑器,也可设置编辑环境。

4、vi的进入与退出(1)进入vi若要编辑文件myfile,执行如下命令即可:#vi myfile屏幕显示vi的编辑窗口,进入命令操作模式。

(2)退出vi如果在输入模式下,则先利用Esc键进入命令模式,而后即可选用下列命令退出vi。

:q! 离开vi,并放弃刚才编辑的内容。

:wq 存盘并退出。

:x 同wq:w 存盘但并不退出:q 退出vi,若文件被修改过,则会被要求确认是否放弃修改的内容5、编译器gcc命令格式:gcc [选项] 源文件[目标文件]选项含义:-c:只编译并生成目标文件。

-g:生成调试信息。

-o FILE:生成指定的输出文件。

用在生成可执行文件时。

例:编译hello.c源文件:#gcc hello.c –o hello将hello.cpp编译为目标代码:#gcc –c hello.cpp –o hello.o链接指定的函数库中的目标代码和包含头文件,编译程序:#gcc myapp.c –L /home/abc/lib –I /home/abc/include –lnew –o myapp实验三、linux进程管理实验一、实验目的1、通过本实验学习Linux中创建进程的方法。

2、学习系统调用fork的使用方法。

二、实验内容1、编程实现使用fork函数创建子进程。

2、在Linux环境下,使用Linux命令和C语言编程:使用系统调用fork()来创建两个进程,并由父进程显示字符串“parent:”和自己的标识数,而子进程显示字符串“child:”和自己的标识数。

三、实验步骤1、进程的创建fork函数#include <sys/types.h>#include <unistd.h>pid_t fork( );2、获得ID号函数:getpid();当一个进程调用了fork以后,系统会创建一个子进程,这个子进程和父进程不同的地方只有它的进程ID和父进程ID。

该函数被调用一次,但返回两次,两次返回的区别是子进程的返回值是0,而父进程的返回值是新子进程的进程ID。

四、上机操作步骤先完成一个Linux下输出“hello world”程序。

1、文件显示命令:#ls2、编辑源文件hello.c :#vi hello.c刚进入为命令模式,在命令模式下输入i 进入插入模式可以输入代码;结束输入后按Esc键进入命令模式。

在命令模式下输入:wq 表示存盘并退出编辑。

3、查看刚建立的文件:#ls4、编译连接:#gcc hello.c –o hello5、运行结果:#./hello.exe实验四、Window进程管理实验一、实验目的1、学习信号量的使用。

2、使用MFC提供的函数创建线程。

二、实验内容1、配合操作系统课程的学习,加深对线程的控制与描述的理解并熟悉VC的使用。

2、学会VC下信号量的使用。

3、利用信号量机制完成5个生产者10个消费者的同步。

4、设计一个有 N个进程共行的进程调度程序。

三、实验步骤(一)、用CSemaphore类实现信号量同步1、创建MFC AppWizard工程2、在stdafx.h中加入#include <afxmt.h>3、在**View.cpp中定义线程函数UINT ThreadFunc(LPVOID lpParameter){HWND hWnd=(HWND)lpParameter;::MessageBox(hWnd,"Thread Start","Thread Message", IDOK);semaphore.Lock();::MessageBox(hWnd,"Get the Semaphore","Thread Message", IDOK);semaphore.Unlock();::MessageBox(hWnd,"Release the Semaphore","Thread Message", IDOK);return 1;}4、定义全局信号量CSemaphore semaphore(2,2,"SEMAPHORE",NULL);5、创建线程响应函数:void CMy**View::OnThread(){HWND hWnd=GetSafeHwnd();AfxBeginThread(ThreadFunc,(LPVOID)hWnd); }(二)多线程控制实验从屏幕左上角向右下角显示运动的“HELLO”,从右上角向左下角显示运动的“GOOD”,并能控制线程结束。