当前位置:文档之家› 操作系统实习报告

操作系统实习报告

操作系统实习报告
操作系统实习报告

操作系统实习报告

学生姓名:刘世

班级:物联网151班

专业:计算机科学与技术

系别:计算机系

学院:信息工程学院

指导教师:宋洪军

2016年12月10日

操作系统实习报告正文格式

1.远程登录服务器的设置

一、设计目的

掌握远程登录Telnet、SSH服务器的配置方法。。

二、设计内容及要求

1、下载相应版本的telnet服务器rpm包

2、安装telnet服务器;

3、配置telnet服务器;

4、打开Telnet服务;

5、允许root使用Telnet登录;

6、启动Telnet服务器;

7、使用telnet;

8、安装和配置openssh;

9、使用SSH客户端;

10、OpenSSH常用命令练习;

三、设计算法及流程

1.Telnet

(1)使用以下命令检查是否安装了Telnet服务器程序:

#rpm –qa telnet-server

(2)若没有光盘,从网上下载相应版本的ipm包。通过U盘挂载将程序复制到/root/下。

(3)使用以下命令安装Telnet服务器程序:

#rpm –ivh /root/ telnet-server-0.17-47.el6_3.1.i686.rpm。

(4)使用以下命令打开/etc/xinetd.d/telnet文件

#vi /etc/xinetd.d/telnet将配置文件中的disable=yes修改为disable=no,保存退出。

(5)需要设置Telnet服务器只允许上班时间进行登录,且登录的客户端只能是本网段内的主机(即192.168.0.1—192.168.0.255),则可使用以下命令打

开/etc/xinetd.d/telnet文件,修改配置文件。

(6)Telnet服务使用的默认端口是23,若不使用该端口,可在/etc/services 中进行修改。

#vi /etc/services

(7)在/etc/目录中有一个securetty文件,该文件可控制root用户登录的设备。该文件是记录的是可以作为root用户登录的设备名,如tty1、tty2等。若要root用户通过Telnet登录到服务器,最简单的办法是删除securetty文件,使用以下命令将该文件重命名也可以达到同样的目的。

#mv /etc/securetty /etc/securetty.bak

(8)通过前面的步骤设置好Telnet的配置文件后,使用以下命令重启xinetd 守护进程,可将Telnet服务启动。

#service xinetd restart

(9)在LInux中使用以下命令登录到Telnet服务器:

#telnet 192.168.10.249

(10)使用Windows也可快速通过Telnet登录到Linux服务器,具体过程如下:

在Windows的命令窗口输入以下命令登录到服务器

telnet 192.168.10.249

连接到服务器后,将提示用户输入用户名和密码

登录成功后,即可在Windows中操作远程Linux服务器了。客户端程序连接到Telnet服务器后,将提示用户名和密码,进行登录操作。

2.Openssh

(1)使用以下命令检查是否安装OpenSSH服务器程序。

#rpm -qa openssh-server

(2)OpenSSH服务器程序包含在RHEL6.4的安装光盘中,使用mount将光驱挂载到文件系统。若没有光盘,可从网上下载。

(3)使用以下命令安装OpenSSH服务器程序:

#rpm-ivh/mnt/cdrom/Packages/openssh-server-5.3p1-84.1.el6.i686.rpm 安装完成后,OpenSSH服务器程序的守护进程为sshd。通过该守护进程就可启动、重启或停止OpenSSH服务器程序。

(4)启动/停止 OpenSSH

设置好OpenSSH配置文件后,就可启动OPenSSH服务程序。手工启动的命令如下:

#service sshd start

(5)Linux客户端使用SSH登录

可通过两种方式来登录SSH服务器。

通过密码方式登录SSH的过程为:在客户机中使用以下命令连接到远程SSH 服务器:

#ssh 192.168.10.249

3.scp

(1)将本地计算机中名为upfile.txt的文件复制到远程服务器中,放于root 用户的Home目录中,具体操作命令如下:

#scp upfile.txt root@192.168.0.1:目录

(2)若只是查看远程服务器192.168.0.1中root目录中的文件列表,具体命令如下:

#ssh 192.168.0.1 ls -l

4.sftp

(1)在本地计算机中输入以下命令,登录到远程服务器:

#sftp root@192.168.0.1

执行以上命令,将要求用户输入密码。

(2)与使用ftp一样,可使用ls命令查看当前目录中的文件。

(3)接下来使用put命令将本地计算机中的文件upfile.txt上传到服务器。

(4)使用ls命令查看文件是否上传成功。

(5)操作完成后,输入bye命令,退出sftp即可。

四、程序运行结果分析telnet

ssh

scp

Sftp

五、程序源代码及注释

使用以下命令检查是否安装了Telnet服务器程序:

#rpm –qa telnet-server

使用以下命令安装Telnet服务器程序:

#rpm –ivh /root/ telnet-server-0.17-47.el6_3.1.i686.rpm。

使用以下命令打开/etc/xinetd.d/telnet文件

#vi /etc/xinetd.d/telnet

Telnet服务使用的默认端口是23,若不使用该端口,可在/etc/services中进行修改。

#vi /etc/services

删除securetty文件,使用以下命令将该文件重命名也可以达到同样的目的。

#mv /etc/securetty /etc/securetty.bak

通过前面的步骤设置好Telnet的配置文件后,使用以下命令重启xinetd守护进程,可将Telnet服务启动。

#service xinetd restart

在LInux中使用以下命令登录到Telnet服务器:

#telnet 192.168.10.249

使用以下命令检查是否安装OpenSSH服务器程序。

#rpm -qa openssh-server

使用以下命令安装OpenSSH服务器程序:

#rpm-ivh/mnt/cdrom/Packages/openssh-server-5.3p1-84.1.el6.i686.rpm 设置好OpenSSH配置文件后,就可启动OPenSSH服务程序

#service sshd start

Linux客户端使用SSH登录

#ssh 192.168.10.249

将本地计算机中名为upfile.txt的文件复制到远程服务器中,放于root用户的Home目录中,具体操作命令如下:

#scp upfile.txt root@192.168.0.1:目录

若只是查看远程服务器192.168.0.1中root目录中的文件列表,具体命令如下:

#ssh 192.168.0.1 ls -l

在本地计算机中输入以下命令,登录到远程服务器:

#sftp root@192.168.0.1

2.FTP服务器的配置设置

一、设计目的

在Linux操作系统之上架设vsftpd服务器并用自己的账号登录服务器,然后上传文件。

二、设计内容及要求

1、下载相应版本的vsftp服务器rpm包

2、安装vsftp服务器;

3、配置vsftpd工作环境;

4、启动vsftpd服务器;

5、vsftpd的常用配置;

6、在Windows中登录到vsftpd服务器;

7、本地用户配置;

三、设计算法及流程

内容一:安装vsftpd

1、启动虚拟机,启动系统进入RedHat Linux 9.0

2、查看Vsftp服务是否安装

内容二:配置vsftpd工作环境

1、配置用户和目录

(1)配置用户

对于允许匿名访问的FTP服务器,应该在其主机中创建名为ftp的用

户。另外,还需检查是否有名为nobody的用户。可使用以下命令检查,

若不存在这些用户,需要另外创建。

(2)配置目录

对于ftp服务器来说,应该有一个公共目录供用户下载资料对于允许

上传文件的FTP服务器,还应该设置具有上传权限的目录。

1)在/var目录中创建名为ftp的目录,命令如下:(如果已经存在该

目录,则忽略此步)

#mkdir /var/ftp 2)使用以下命令修改目录ftp的所有者和权限:

#chown root.root /var/ftp #chmod og-w /var/ftp

(3)若允许匿名用户上传文件,应该创建一个供匿名用户上传文件的目录,并将该目录的所有者和组改为ftp,具体命令如下:

#mkdir /var/ftp/upload #chown ftp.ftp /var/ftp/upload 内容三启动vsftpd

1.这里使用standalone方式启动vsftpd,需要修改文件:修改/etc/vsftpd/vsftpd.conf配置文件,将其中的listen=NO修改为listen=YES,表示使用独立方式侦听对ftp的访问,如图所示:

在终端中输入命令打开配置文件:

#vi /etc/vsftpd/vsftpd.conf

在vsftpd.conf文件中修改了启动方式后,需要重新启动一次xinetd守护进程,然后再使用独立方式启动vsftpd.

#service xinetd restart

#service vsftpd start

2.查看是否已启动vsftpd:

#pstree | grep vsftpd

使用netstat命令查看端口的使用状态,检查21端口是否处于侦听状态内容四、Vsftpd常用配置

1.匿名用户配置

在对vsftpd.conf文件配置之前,复制一个副本,如:

#cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.v

在vsftpd.conf配置文件中,默认是允许匿名用户登录FTP服务器的,但是不允许上传文件、不允许在服务器创建目录。可使用以下命令修改该文件中的相关选项,改变匿名用户权限

允许匿名用户登录;

允许匿名用户上传文件。

允许匿名用户创建目录。

用户登录成功后显示欢迎信息。

在Windows中登录到vsftpd服务器,并进行相关操作。

具体步骤如下:

(1)在Windows命令窗口输入ftp 192.168.10.249

(2)输入ls -l,查看ftp目录信息:

(3)接下来执行mkdir命令,试着在FTP服务器中刚创建一个目录。

执行结果如图所示,可以看出,创建目录失败。

(4)匿名用户要在FTP服务器端创建目录,只能切换到有权限的upload目录中才行,按下面命令进行操作,即可在upload目录

中创建一个名为test的目录。

#cd upload #mkdir test

(5)最后测试一下文件的上传功能,执行以上命令完成文件的上传:#put vsftpd-3.0.2.pre4.tar.gz

内容五:本地用户配置

(1)修改配置文件/etc/vsftpd/vsftpd.conf

#接收本地用户 local_enable=YES

#本地用户上传文件的umask local_umask=022

(2)新建一个用户:shj用来登录ftp服务器(此处创建的用户名用自己的名字)

(3)重启vsftp服务

(4)用新建立的账号登录服务器

四、程序运行结果分析

五、程序源代码及注释

使用下面的命令创建用户ftp,并设置其工作目录为/var/ftp(该目录在下面创建)

#useradd -d /var/ftp ftp

在/var目录中创建名为ftp的目录,命令如下:(如果已经存在该目录,则忽略此步)

#mkdir /var/ftp

使用以下命令修改目录ftp的所有者和权限:#chown root.root /var/ftp #chmod og-w /var/ftp

若允许匿名用户上传文件,应该创建一个供匿名用户上传文件的目录,并将该目录的所有者和组改为ftp,具体命令如下:

#mkdir /var/ftp/upload #chown ftp.ftp /var/ftp/upload

取消防火墙:

#service iptables stop

在终端中输入命令打开配置文件:

#vi /etc/vsftpd/vsftpd.conf

在vsftpd.conf文件中修改了启动方式后,需要重新启动一次xinetd守护进程,然后再使用独立方式启动vsftpd.

#service xinetd restart

#service vsftpd start

查看是否已启动vsftpd:

#pstree | grep vsftpd

使用netstat命令查看端口的使用状态,检查21端口是否处于侦听状态,具体命令如下:

#netstat -anptul | grep 21

在对vsftpd.conf文件配置之前,复制一个副本,如:

#cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.v

在Windows命令窗口输入ftp 192.168.10.249(虚拟机IP地址)

匿名用户要在FTP服务器端创建目录,只能切换到有权限的upload目录中才行,按下面命令进行操作,即可在upload目录中创建一个名为test的目录。

#cd upload #mkdir test

最后测试一下文件的上传功能,执行以上命令完成文件的上传: #put vsftpd-3.0.2.pre4.tar.gz

修改配置文件/etc/vsftpd/vsftpd.conf

#接收本地用户 local_enable=YES

#本地用户上传文件的umask local_umask=022

3 . Samba服务器的配置

一、设计目的

架设一台samba服务器,用来向局域网内各客户机提供软件共享服务。

二、设计内容及要求

1、按照Fedora 4 配套安装samba软件;

2、创建目录/usr/soft;

3、修改/etc/samba/smb.conf文件;

4、重启samba服务;

三、设计算法及流程

1. 按照Fedora 4 配套安装samba软件;

现计划架设一台samba服务器,用来向局域网内个客户机提供软件共享服务,常用软件的安装包都存放在服务器的/usr/soft目录中,要求用户只能从该目录中读取文件,而不能修改目录中的文件。另外,各客户端还可以利用samba服务器进行临时文件交换,即任何用户有权限将文件写到服务器的某一目录(假设为tmpdoc)。

2. 创建目录/usr/soft,命令为:mkdir /usr/soft;

3. 将目录的访问权限修改为755,命令为:chmod 755 /usr/soft;

4. 将常用的软件复制到目录/usr/soft中;命令为cp …;

5. 使用以下命令创建临时的文件交换目录:mkdir /home/tmpdoc;

6. 由于匿名用户也能在/home/tmpdoc目录中写入数据,需要将该目录的属性修改为nobody(samba中使用的匿名登录,默认的用户名为nobody),具体命令:chown nobody:nobody /home/tmpdoc;

7. 修改/etc/samba/smb.conf文件

8. 执行以下命令重启samba服务:service smb restart;

9. 接下来在windows中打开“网络”窗口,在地址栏中输入服务器的地址\\...,可以连接成功

选中soft目录中的文件,尝试删除,将提示错误信息,按照类似的方法打开tmpdoc目录,试着创建目录和文件,能创建成功。

对以上各目录进行修改,要求各目录达到以下功能:

(1)soft目录:保存常用的软件,除了管理员admin之外,所有的用户都只有读的权限,admin可以向该目录写入文件,用来更新安装软件包;

(2)tempdoc目录:仍然作为临时的文件交换目录,的有用户都可以进行读写操作。

(3)tech目录:保存技术部的资料,该目录只有技术部的员工可以进行读写操作,其他人员不能访问(经理manager可访问该目录,不能修改)。

(4)market目录:保存市场部的资料,该目录只有市场部的员工可以进行读写操作,其他人员不能访问(经理manager可访问该目录,不能修改)。

11.使用以下命令创建两个用户组:

#groupadd tech

#groupadd market

12.使用以下命令创建用户:

#useradd -s /sbin/nologin admin

#useradd -s /sbin/nologin manager

#useradd -g tech -s /sbin/nologin li

#useradd -g market -s /sbin/nologin wang

接着使用以下命令将各用户添加到samba密码文件中,并设置密码

#smbpasswd –a admin

重复以上命令为每个用户设置好密码

13.使用以下命令再创建两个目录:

#mkidr /home/tech

#mkidr /home/market

14.market和tech目录只有同组用户有读写权限,其他用户不能读写,使用以下命令设置两个目录的属组:

#chgrp market /home/market

#chgrp tech /home/tech

15.经理manager对两个目录都可以查看,但不能修改,如果将mamager 添加到market和tech两个组中,又具有了写的权限,这里使用了一个技巧,将manager设置为两个文件夹的所有者,使用以下命令:

#chown manager /home/market

#chown manager /home/tech

16.接着使用以下命令修改两个目录的权限:

#chmod 570 /home/market

#chmod 570 /home/tech

17.由于/usr/soft目录中admin需要有写权限,因此使用以下命令将admin改为其属主即可:

#chown admin /usr/soft

18.由于所有的用户都需要登录,为了使所有用户对tmpdoc目录有写权限,使用以下命令将该目录的权限设置为777:

#chmod 777 /home/tmpdoc

19.经过以上准备工作来编辑smb.conf配置文件

四、程序运行结果分析

五、程序源代码及注释

创建目录/usr/soft,命令为:mkdir /usr/soft;

将目录的访问权限修改为755,命令为:chmod 755 /usr/soft;

JAVA学生信息管理系统实验报告

JA V A程序设计实验报告 学号: 姓名: 班级: 实验、Java课程设计--------学生信息管理系统

一、实验目的 1.掌握Java基本语法 2.理解面向对象编程特点 3.理解Java I/O编程 4.掌握Java图形界面编程 5.掌握Java与不同数据库进行连接 二、预习内容 Java的基本语法知识、类和对象、Java Swing图形界面编程、Java I/O处理以及Java与数据库连接操作 三、实验设备与环境 通过局域网互联,安装Windows 2000/XP操作系统环境的JDK 1.6,my eclipse 或者EditPlus编程工具。并安装MySQL数据库 四、实验内容 编写并调试运行Java程序,进行设计,掌握Java开发的基础。 五、实验任务 设计学生信息管理系统。要求包括 1. 登陆模块:设立超级管理员权限,用户可以根据不同的权限登陆系统,超级管理员可以对学生信息进行增、删、改、查操作。而普通用户只可以查找学生信息。 2. 包括学生添加信息模块、学生信息删除模块、学生信息修改模块和学生信息查询模块 3.对于管理员,可以对管理员进行添加、删除以及修改密码等操作。 六、实验报告(要求独立完成参考程序的代码、编译、调试与运行) 1、程序清单: 1.1程序模块清单 package Pan; import java.awt.event.ItemListener; import javax.swing.*; import https://www.doczj.com/doc/bc3603959.html,ponent;

import java.awt.BorderLayout; import java.awt.FlowLayout; import java.awt.event.InputEvent; import java.awt.event.ItemListener; import java.awt.event.KeyEvent; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import java.util.*; import java.awt.Color; import java.text.DecimalFormat; import java.sql.*; import java.sql.Date; import java.awt.*; import java.util.Vector; public class Res { /** * @param args */ public static void main(String[] args) {

操作系统-Linux课程实验报告

实验、 Linux Ubuntu的安装、创建新的虚拟机VMWare 实验 Shell编程 1.实验目的与内容 通过本实验,了解Linux系统的shell机制,掌握简单的shell编程技巧。 编制简单的Shell程序,该程序在用户登录时自动执行,显示某些提示信息,如“Welcome to Linux”, 并在命令提示符中包含当前时间、当前目录和当前用户名等基本信息。 2.程序源代码清单 #include<> #include int main(){ printf("Hello Linux\n"); int pid; int state; int pfd[2]; pipe(pfd); if (fork()==0){ printf("In the grep progress\n"); dup2(pfd[0],0); close(pfd[0]); close(pfd[1]); execlp("grep","grep","sh",0); perror("exelp grep error"); } esle if(fork()==0){ printf("In the ps progress\n"); dup2(pfd[1],1); close(pfd[0]); close(pfd[1]); execlp("ps","ps","-ef",0); perror("execlp ps -ef"); }

close(pfd[1]); close(pfd[0]); wait(&state); wait(&state); } 实验内核模块 实验步骤: (1).编写内核模块 文件中主要包含init_clock(),exit_clock(),read_clock()三个函数。其中init_clock(),exit_clock()负责将模块从系统中加载或卸载,以及增加或删除模块在/proc中的入口。read_clock()负责产生/proc/clock被读时的动作。 (2).编译内核模块Makefile文件 # Makefile under ifneq ($(KERNELRELEASE),) #kbuild syntax. dependency relationshsip of files and target modules are listed here. obj-m := else PWD := $(shell pwd) KVER ?= $(shell uname -r) KDIR := /lib/modules/$(KVER)/build all: $(MAKE) -C $(KDIR) M=$(PWD) modules clean: rm -rf .*.cmd *.o *. *.ko .tmp_versions *.symvers *.order endif 编译完成之后生成模块文件。 (3).内核模块源代码 #include #include #include #include #include #include #define MODULE #define MODULE_VERSION "" #define MODULE_NAME "clock" struct proc_dir_entry* my_clock; int read_clock(char* page, char** start, off_t off, int count, int* eof, void* data) { int len; struct timeval xtime;

北大操作系统高级课程-陈向群作业-线程调度实习报告

线程调度实习报告

目录 内容一:总体概述 (3) 内容二:任务完成情况 (3) 任务完成列表(Y/N) (3) 具体Exercise的完成情况 (3) 内容三:遇到的困难以及解决方法 (8) 内容四:收获及感想 (9) 内容五:对课程的意见和建议 (9) 内容六:参考文献 (9)

内容一:总体概述 本次lab主要是对线程调度的学习和理解。当计算机系统是多道程序设计系统时,通常就会有多个进程或或线程同时竞争CPU。只要有两个或更多的进程处于就绪态,这种情况就会发生,那么就必须选择下一个要运行的进程。在操作系统中,完成选择工作的这一部分称为调度程序,该程序使用的算法称为调度算法。 进程调度策略的选择对整个系统性能有至关重要的影响,一个好的调度算法应该考虑很多方面:公平、有效、响应时间、周转时间、系统吞吐量等等。但这些因素之间又是相互矛盾的,最终的取舍根据系统要达到的目标而定,同时我们也可以看出多进程的管理是~种非常复杂的并发程序设计.每个进程的状态不仅由其自身决定,而且还要受诸多外在因素的影响.而在此基础上的进程调度,为了保证操作系统的稳定性、提高效率和增加灵活性,还必须采用很多方法,这些都是值得我们去研究和探讨的。 本次实验针对Nachos系统的代码的阅读和修改,了解Nachos系统中线程调度在代码中如何实现,以及在其上扩展线程调度算法,实现基于优先级的抢占式调度算法。 内容二:任务完成情况 任务完成列表(Y/N) Exercise1 Exercise2 Exercise3 完成情况Y Y Y 具体Exercise的完成情况 Exercise1调研 了解Linux或Windows中采用的进程/线程调度算法。 解答:Linux 的调度算法演化伴随着其内核版本的更迭,具有代表性的版本以此为:2.4,2.6,以及最近几年频繁更替的版本:3.5,3.6,3.7,3.8,其中3.8 是最新的稳定版本。下面就其调度机制的演化进行论述。 在 2.4 版本的内核之前,当很多任务都处于活动状态时,调度器有很明显的限制。这是由于调度器是使用一个复杂度为O(n) 的算法实现的。在这种调度器中,调度任务所花费的时间是一个系统中任务个数的函数。换而言之,活动的任务越多,调度任务所花费的时间越长。在任务负载非常重时,处理器会因调度消耗掉大量的时间,用于任务本身的时间就非常少了。因此,这个算法缺乏可伸缩性。在对称多处理系统(SMP)中,2.4 版本之前的调度器对所有的处理器都使用一个运行队列。

操作系统课程设计报告书

题目1 连续动态内存管理模拟实现 1.1 题目的主要研究内容及预期达到的目标 (1)针对操作系统中内存管理相关理论进行设计,编写程序并进行测试,该程序管理一块虚拟内存。重点分析三种连续动态内存分配算法,即首次适应算法、循环首次适应算法和最佳适应算法。 (2)实现内存分配和回收功能。 1.2 题目研究的工作基础或实验条件 (1)硬件环境:PC机 (2)软件环境:Windows XP,Visual C++ 6.0 1.3 设计思想 首次适应算法的实现:从空闲分区表的第一个表目起查找该表,把最先能够满足要求的空闲区分配给作业,这种方法的目的在于减少查找时间。为适应这种算法,空闲分区表中的空闲分区要按地址由低到高进行排序。该算法优先使用低址部分空闲区,在低址空间造成许多小的空闲区,在高址空间保留大的空闲区。 循环首次适应算法的实现:在分配内存空间时,不再每次从表头开始查找,而是从上次找到空闲区的下一个空闲开始查找,直到找到第一个能满足要求的的空闲区为止,并从中划出一块与请求大小相等的内存空间分配给作业。该算法能使内存中的空闲区分布得较均匀。 最佳适应算法的实现:从全部空闲区中找到能满足作业要求的、且最小的空闲分区,这种方法能使碎片尽量小。为适应此算法,空闲分区表中的空闲分区要按从小到大进行排序,从表头开始查找第一个满足要求的自由分配。 1.4 流程图 内存分配流程图,如图1-1所示。

图1-1 内存分配流程图内存回收流程图,如1-2所示。

图1-2 内存回收流程图 1.5 主要程序代码 (1)分配内存 void allocate(char z,float l) { int i,k; float ad; k=-1; for(i=0;i= l && free_table[i].flag == 1) if(k==-1 || free_table[i].length

操作系统实验报告java

操作系统实验报告 院系: 专业: 班级: 学号: : 指导老师:

进程调度的模拟与存管理 一、实验目的 在采用多道程序设计的系统中,往往有若干个进程同时处于就绪状态。当就续进程个数大于处理器数时,就必须依照某种策略来决定哪些进程优先占用处理器。实验模拟实现处理机调度,以加深了解处理机调度的工作,并体会优先级和时间片轮转调度算法的具体实施方法。帮助了解在不同的存储管理方式下,应怎样实现主存空间的分配和回收。 二、实验要求 1、可随机输入若干进程,并按优先权排序; 2、从就绪队首选进程运行:优先权-1/要求运行时间-1 要求运行时间=0时,撤销该进程 3、重新排序,进行下轮调度。 4、可随时增加进程; 5、规定道数,设置后备队列和挂起状态。若存中进程少于规定道数,可自 动从后备队列调度一作业进入。被挂起进程入挂起队列,设置解挂功能 用于将指定挂起进程解挂入就绪队列。 6、每次调度后,显示各进程状态。 7、自行假设主存空间大小,预设操作系统所占大小并构造未分分区表; 表目容:起址、长度、状态(未分/空表目) 8、结合以上实验,PCB增加为: {PID,要求运行时间,优先权,状态,所需主存大小,主存起始位置,

PCB指针} 9、采用最先适应算法分配主存空间; 10、进程完成后,回收主存,并与相邻空闲分区合并。 11、采用图形界面; 三、实验容 选择一个调度算法,实现处理机调度。 1、设计一个按优先权调度算法实现处理机调度的程序; 2、设计按时间片轮转实现处理机调度的程序。 3、主存储器空间的分配和回收。在可变分区管理方式下,采用最先适应算法实现主存空间的分配和回收。 四、实验原理 该模拟系统采用java语言实现,要实现的功能有新建进程、进程调度、挂起进程、解挂进程、删除进程,道数和时间片大小可以由用户自己调整,有两种调度策略:按优先权调度和按时间片轮转调度。每个进程可能有5种状态:新建(new)、就绪(ready)、运行(running)、阻塞(waiting)、挂起(suspend)。每个状态都有一个队列用来存放处于该状态的进程,不同的调度策略采用不同的队列实现。当创建进程时,如果存中的进程数还没达到规定道数,则将新建进程插入就绪队列,如果存中进程数已经达到规定道数,则插到后备队列,后备队列中的进程的状态为new。CPU每次调度时都从就绪队列中取进程,在进程执行过程中如果下一个操作时IO操作,则将进程插入到waiting队列。在系统运行过程中可以执行进程挂起操作,但执行的挂起操作时系统自动暂停运行,在弹出窗口选

计算机操作系统实验课实验报告

实验报告 实验课程: 计算机操作系统学生姓名:XXX 学号:XXXX 专业班级:软件 2014年12月25日

目录 实验一熟悉Windows XP中的进程和线程.. 3实验二进程调度 (7) 实验三死锁避免—银行家算法的实现 (18) 实验四存储管理 (24)

实验一熟悉Windows XP中的进程和线程 一、实验名称 熟悉Windows XP中的进程和线程 二、实验目的 1、熟悉Windows中任务管理器的使用。 2、通过任务管理器识别操作系统中的进程和线程的相关信息。 3、掌握利用spy++.exe来察看Windows中各个任务的更详细信息。 三、实验结果分析 1、启动操作系统自带的任务管理器: 方法:直接按组合键Ctrl+Alt+Del,或者是在点击任务条上的“开始”“运行”,并输入“taskmgr.exe”。

2、调整任务管理器的“查看”中的相关设置,显示关于进程的以下各项信息,并 完成下表: 表一:统计进程的各项主要信息 3、启动办公软件“Word”,在任务管理器中找到该软件的登记,并将其结束掉。再

从任务管理器中分别找到下列程序:winlogon.exe、lsass.exe、csrss.exe、smss.exe,试着结束它们,观察到的反应是任务管理器无法结束进程, 原因是该系统是系统进程。 4、在任务管理器中找到进程“explorer.exe”,将之结束掉,并将桌面上你打开的所 有窗口最小化,看看你的计算机系统起来什么样的变化桌面上图标菜单都消失了、得到的结论explorer.exe是管理桌面图标的文件(说出explorer.exe进程的作用)。 5、运行“spy++.exe”应用软件,点击按钮“”,切换到进程显示栏上,查看进 程“explorer.exe”的各项信息,并填写下表: 进程:explorer.exe 中的各个线程

计算机管理实习报告

计算机管理实习报告 新疆农业大学实习报告实习课程名称:毕业实习学院:计算机与信息工程学院专业、班级:信息管理与信息系统024指导教师:张胜光报告人:柳新年学号:024631432时间:XX年4月22日实习主要内容:因为时间的原因,和工商联没有计算机中心,因此我没能介入到网络管理的每一个方面,重点完成了针对计算机维护、网络安全的实习。现将我在工商联实习的心得总结如下:一、计算机维护计算机维护分为硬件维护和软件维护两个方面。工商联的计算机现状大概是总共有用于办公的计算机20余台,大部分是方正奔腾4的品牌机,还有一些联想的品牌机,以及少量打印机。

1、对硬件的维护主要集中在上一代未更新的计算机,因为使用年限比较久,硬件老化及磨损相对比较严重。在使用现在部分大型软件的时候经常出现死机,蓝屏,自动重启等现象。一般常见的引起硬件故障的主要原因有很多种,例如:各个配件间的兼容性不好;有些硬件的质量不过关等。但一般常见的硬件故障主要由以下几个方面引起。首先,电源电压不稳定或经常断电引起的故障。微机所使用的电源的电压不稳定,那么硬盘在读写文件时就会出现丢失或被损坏的现象。如果经常会发生不正常的断电现象导致微机重启,或是经常在计算机运行程序时进行冷启动,将会使系统受到破坏。为使微机更安全地工作,最好使用电源稳压器或不间断电源。其次,部件之间接触不良引起的故障。接触不良主要反映在各种卡类与主板的接触不良或电源线数据线音频线的连接不良。其中,各种接口卡内存条与主板接触不良最为常见。例如:显卡与主板接

触不良可能会使显示器不显示,内存条与主板接触不良可能使微机不工作等,通常只要更换相应的插槽或用橡皮轻轻擦一擦接口卡或内存条的金手指,即可排除故障。2、软件维护方面,在新近配置的一批方正计算机中因为随商家发货过来的时候,已经装好了操作系统还附带安装了瑞星杀毒软件,但是因为他们安装的操作系统WindowsXP没有打上SP2补丁,而且安装的瑞星杀毒软件也是XX年版的,再加上所有的办公计算机都是挂在网络上的,这样就使得计算机对病毒和入侵的抵御能力很差,但同时又面临开放网络的大量病毒和入侵,造成该批计算机大面积中毒。给我们带来了巨大的工作量,在这次病毒感染中,计算机感染的集中表现为:震荡波和一种叫的病毒。我们开始更新瑞星杀毒软件,能找到内存中的病毒并清除,但是这并不能从根本上解决问题。因为病毒是利用操作系统本身存在的漏洞进行攻击的,如果不把漏洞堵上,还是会被感

操作系统课程设计报告

操作系统课程设计报告

东莞理工学院 操作系统课程设计报告 学院:计算机学院 专业班级: 13软件工程1班 提交时间: 2015/9/14 指导教师评阅意见: . 项目名称:进程与线程管理功能 一、设计目的 用语言来模拟进程和线程管理系统,加深对进程和线程的理解,掌握对进程和线程各种状态和管理的算法原理。

二、环境条件 系统: WindowsXP、VMWare、Ubuntu Linux 语言:C/C++ 开发工具:gcc/g++、Visual C++ 6.0 三、设计内容 1. 项目背景 计算机的硬件资源有限,为了提高内存的利用率和系统的吞吐量,就要根据某种算法来管理进程和线程的状态从而达到目的。 进程与线程管理功能完成基于优先级的抢占式线程调度功能,完成进程虚拟内存管理功能。 进程与线程管理功能 基本要求:完成基于优先级的抢占式线程调度功能,完成进程虚拟内存管理功能。 提高要求:(增加1项就予以加分) (1) 实现多种线程调度算法; (2)通过“公共信箱”进行通信的机制,规定每一封信的大小为128字节,实现两个用户进程之间通过这个“公共信箱”进行通信。 (3) 实现多用户进程并发的虚拟内存管理功能。

(4) 实现用户进程间通信功能,并用生产者/消费者问题测试进程间通信功能的正确性。 (5) 实现改进型Clock页面置换算法。 (6) 实现Cache功能,采用FIFO替换算法。 2. 扩展内容 实现多种线程调度算法:时间片轮转调度算法 四、人员分工 优先级调度算法:钟德新,莫友芝 时间片轮转调度算法:张德华,袁马龙 设计报告由小组队员共同完成。小组成员设计的代码分工如下:钟德新编写的代码:void Prinft(){ PCB *p; system("cls");//清屏 p=run; //运行队列 if(p!=NULL) { p->next=NULL; } cout<<"当前正在运行的进程:"<procname<<"\t\t"<pri<<"\t"<needOftime<<"\t\t"<runtime<<"\t\t"<state<next; } cout<

操作系统实习报告样本

操作系统实习报告样本 1 操作系统实习报告内容(1) 基本信息:完成人姓名、学号、报告日期 (2) 实习内容(3) 实习目的(4) 实习题目(5) 设计思路和流程图(6) 主要数据结构及其说明(7) 源程序并附上注释(8) 程序运行时的初值和运行结果(9) 实习体会:实习中遇到的问题及解决过程、实习中产生的错误及原因分析、实习的体会及收获、对搞好今后实习提出建设性建议等。实习报告可以书面或电子文档形式提交。 2操作系统实习报告样本样本1一、实习内容模拟分页式虚拟存储管理中硬件的地址转换和缺页中断,以及选择页面调度算法处理缺页中断。二、实习目的在计算机系统中,为了提高主存利用率,往往把辅助存储器(如磁盘)作为主存储器的扩充,使多道运行的作业的全部逻辑地址空间总和可以超出主存的绝对地址空间。用这种办法扩充的主存储器称为虚拟存储器。通过本实习理解在分页式存储管理中怎样实现虚拟存储器。三、实习题目本实习有三个小题。第一题:模拟分页式存储管理中硬件的地址转换和产生缺页中断。[设计思路、数据结构、流程图]:(1) 分页式虚拟存储系统是把作业信息的副本存放在磁盘上,当作业被选中时,可把作业的开始几页先装入主存且启动执行。为此,在为作业建立页表时,应说明哪些页已在主存,哪些页尚未装入主存,页表的格式为:页号标志主存块号在磁盘上的位置其中,标志——用来表示对应页是否已经装入主存,标志位=1,则表示该页已经在主存,标志位=0,则表示该页尚未装入主存。主存块号——用来表示已经装入主存的页所占的块号。在磁盘上的位置——用来指出作业副本的每一页被存放在磁盘上的位置。(2) 作业执行时,指令中的逻辑地址指出参加运算的操作数存放的地址,该地址被解释为页号和单元号,硬件的地址转换机构按页号查页表,若该页对应标志为“1”,则表示该页已在主存,这时根据关系式:绝对地址=块号′块长+单元号计算出欲访问的主存单元地址。如果块长为2的幂次,则可把块号作为高地址部分,把单元号作为低地址部分,两者拼接而成绝对地址。按计算出的绝对地址可以取到操作数,完成一条指令的执行。若访问的页对应标志为“0”,则表示该页不在主存,这时硬件发“缺页中断”信号,由操作系统按该页在磁盘上的位置,把该页信息从磁盘读出装入主存后再重新执行这条指令。(3) 设计一个“地址转换”程序来模拟硬件的地址转换

操作系统课程设计报告

上海电力学院 计算机操作系统原理 课程设计报告 题目名称:编写程序模拟虚拟存储器管理 姓名:杜志豪.学号: 班级: 2012053班 . 同组姓名:孙嘉轶 课程设计时间:—— 评语: 成绩: 目录 一、设计内容及要求 (4) 1. 1 设计题目 (4) 1.2 使用算法分析: (4)

1. FIFO算法(先进先出淘汰算法) (4) 1. LRU算法(最久未使用淘汰算法) (5) 1. OPT算法(最佳淘汰算法) (5) 分工情况 (5) 二、详细设计 (6) 原理概述 (6) 主要数据结构(主要代码) (6) 算法流程图 (9) 主流程图 (9) Optimal算法流程图 (10) FIFO算法流程图 (10) LRU算法流程图 (11) .1源程序文件名 (11) . 2执行文件名 (11) 三、实验结果与分析 (11) Optimal页面置换算法结果与分析 (11) FIFO页面置换算法结果与分析 (16) LRU页面置换算法结果与分析 (20) 四、设计创新点 (24) 五、设计与总结 (27)

六、代码附录 (27) 课程设计题目 一、设计内容及要求 编写程序模拟虚拟存储器管理。假设以M页的进程分配了N

块内存(N

java超市管理系统实训报告

1.1 课程设计的目的 通过本次课程设计,使学生能够全面、深刻地掌握数据库系统的设计流程。根据在数据库原理课程中所学到的数据库理论知识,结合某个具体的实际需求,最终开发出一个较为实用的数据库系统。 1.2 课程设计的背景和意义 1.2.1课程设计的背景 20世纪90年代后期特别是近几年,我国的超市产业飞速发展,其经营模式更为复杂,旧的管理体制已经无法适应超市的发展,这就迫切的需要引进新的管理技术。 超市的数据和业务越来越庞大,而计算机就是一种高效的管理系统,这就需要我们把超市的管理与计算机结合起来,从而超市管理系统应运而生。依靠现代化的计算机信息处理技术来管理超市,节省了大量的人力、物力,改善了员工的并且能够快速反映出商品的进、销、存等状况和各种反馈信息分析,使管理人员快速对市场的变化做出相应的决策,加快超市经营管理效率。 1.2.2 课程设计的意义 “数据库课程设计”的设计思想旨在强调学生的实际编程能力的培养与创意灵感的发挥。为此,本课程结合学科特点,除了让学生掌握数据库原理的理论知识,还增加了需求功能让学生完成,并鼓励学生的创作出个性的程序,满足客户需求,与市场的实际项目相结合。学生对此热情高,实际收获大,效果好。通过课堂学习和参与相关项目设计,学生对书本支持有了深刻的理解,实践性教学取得了良好效果。 1.3 课程设计环境 操作系统:Windows xp 开发软件:Microsoft Visual Studio 2005 数据库:Microsoft SQL Server 2005 第2章系统需求分析 随着人们生活水平的不断提高,对于物质的需求也越来越高,而超市作为日常生活用品聚集的场所,随着全球各种超市的数目的不断增加,规模不断增大,其管理难度也相应的增加,而为了适应当今信息化发展的时代,一套完整的超市商品管理系统显得尤为重要。

视频监控系统实习报告范本

. 安全防技术 视频监控系统工程技术实训报告 班级: : 课程名称:安全防技术 实训项目:视频监控系统工程综合实训 指导老师: 提交日期:2016年8月日

概要 视频监控是指以维护社会公共安全为目的,而采取的防入侵、防盗、防破坏和安全检查措施。视频监控设计是完成一个视频监控系统工程项目的第一步,也是非常关键的一布。 本次校园视频监控从校园建筑安全防系统工程的设计实际出发,依据用户任务书和国家的有关规与标准,建立一个以视频监控安全防系统。以人防与物防、技防相结合,达到防入侵、防盗、防破坏等系统进行联合设计,组成一个综合的、多功能的安全防系统是社会建设发展的需要也是校园安稳和平的需要。 校园视频监控系统的工程设计根据使用要求、现场情况、工程规模、系统造价以及校园的特殊需要等来综合考虑,达到最佳效果。 系统组成:本次实训的系统主要由前端设备、线路设备和终端设备组成。由于现在楼宇自动化的程度越来越高,作为其中一个重要组成部分的视频监控系统也得到了相当的发展,所以视频监控是发展前景很大的项目。

目录 前言....................................... .. (4) 第一章系统介绍 ............................. . (5) 第二章设计思路.............................. ... . (6) 第三章主要设备介绍 (8) 第四章主要设备(摄像机、硬盘录像机工作原理) (10) 4.1前端系统设备.................................. .. (10) 4.2视频监控前端现场设备安装要求................... . (15) 4.3终端视频图像监控子系统................... . (15) 第五章视频监控的简介................... . (19) 第六章实验步骤 (27) 第七章海康网络设备搜索软件的使用步骤 (28) 第八章海康网络设备客户端4200软件使用步骤 (33) 结论 (43) 致 (44) 参考文献 (45)

操作系统课程设计报告

东莞理工学院 操作系统课程设计报告学院:计算机学院 专业班级:13软件工程1班 提交时间:2015/9/14 指导教师评阅意见: . 项目名称:进程与线程管理功能 一、设计目的 用语言来模拟进程和线程管理系统,加深对进程和线程的理解,掌握对进程和线程各种状态和管理的算法原理。 二、环境条件 系统:WindowsXP、VMWare、Ubuntu Linux 语言:C/C++ 开发工具:gcc/g++、Visual C++ 6.0 三、设计内容 1. 项目背景

计算机的硬件资源有限,为了提高内存的利用率和系统的吞吐量,就要根据某种算法来管理进程和线程的状态从而达到目的。 进程与线程管理功能完成基于优先级的抢占式线程调度功能,完成进程虚拟内存管理功能。 进程与线程管理功能 基本要求:完成基于优先级的抢占式线程调度功能,完成进程虚拟内存管理功能。 提高要求:(增加1项就予以加分) (1) 实现多种线程调度算法; (2)通过“公共信箱”进行通信的机制,规定每一封信的大小为128字节,实现两个用户进程之间通过这个“公共信箱”进行通信。 (3) 实现多用户进程并发的虚拟内存管理功能。 (4) 实现用户进程间通信功能,并用生产者/消费者问题测试进程间通信功能的正确性。 (5) 实现改进型Clock页面置换算法。 (6) 实现Cache功能,采用FIFO替换算法。 2. 扩展内容 实现多种线程调度算法:时间片轮转调度算法 四、人员分工 优先级调度算法:钟德新,莫友芝 时间片轮转调度算法:张德华,袁马龙 设计报告由小组队员共同完成。小组成员设计的代码分工如下: 钟德新编写的代码:void Prinft(){ PCB *p; system("cls");//清屏 p=run; //运行队列 if(p!=NULL) { p->next=NULL; } cout<<"当前正在运行的进程:"<procname<<"\t\t"<pri<<"\t"<needOftime<<"\t\t"<runtime<<"\t\t"<state<next; } cout<procname<<"\t\t"<pri<<"\t"<needOftime<<"\t\t"<runtime<<"\t\t"<state<next; } cout<

JAVA+SQL学生学籍管理系统代码及实验报告

学生学籍管理系统 1课程设计目的、设计内容与需求分析 1.1 课程设计目的 通过本次课程设计的实践操作,能够让学生懂得Java、SQL的各种相关知识的使用,真正的提高学生独立开发设计Java程序,把课堂上的知识运用在实践上,一门编程语言只有在不断实践操作和练习上才会有进步。 1.2软件设计内容 学生学籍管理系统,可用于学校等机构的学生信息管理,查询,更新与维护,使用方便,易用性强,图形界面清晰明了。该软件用java语言编写,用SQLServer2005数据库作为后台的数据库进行信息的存储,用SQL语句完成添加,查询,修改,删除的操作。用ODBC驱动实现前台Java与后台SQL数据库的连接。Java语言跨平台性强,可以在windows,linux,ubuntu等系统下使用,方便简单,安全性好。 SQLServer2005数据库高效安全,两者结合可相互利用各自的优势。系统可供输入的属性有“学号”,“姓名”,“性别”,“班级”,“学院”,“籍贯”。 该系统实现的大致功能: 1.管理员登陆界面。该界面可以输入管理员号,登陆密码。用户通过验证通过后方可进入管理系统。一定程度上保证了信息安全性,防止他人未经允许篡改学生信息。 2.查询学生信息。可以选择由用户选择“显示系统中当前的所有学生信息”。也可以选择按照“某一个学号查询该学号的学生信息”。查询到的信息会在窗口中依次显示出来。 3.添加学生信息。可以按照图形的界面的显示依次输入新学生的“学号”,“姓名”,“性别”,“班级”,“学院”,“籍贯”。完成新纪录的添加。 4.修改学生信息。可以选择按照“学号”或者“姓名”找到该学生的学生信息并输

操作系统课程设计实验报告

河北大学工商学院 课程设计 题目:操作系统课程设计 学部信息学部 学科门类电气信息 专业计算机 学号2011482370 姓名耿雪涛 指导教师朱亮 2013 年6月19日

主要内容 一、设计目的 通过模拟操作系统的实现,加深对操作系统工作原理理解,进一步了解操作系统的实现方法,并可练习合作完成系统的团队精神和提高程序设计能力。 二、设计思想 实现一个模拟操作系统,使用VB、VC、CB等windows环境下的程序设计语言,以借助这些语言环境来模拟硬件的一些并行工作。模拟采用多道程序设计方法的单用户操作系统,该操作系统包括进程管理、存储管理、设备管理、文件管理和用户接口四部分。 设计模板如下图: 注:本人主要涉及设备管理模块

三、设计要求 设备管理主要包括设备的分配和回收。 ⑴模拟系统中有A、B、C三种独占型设备,A设备1个,B设备2个,C设备2个。 ⑵采用死锁的预防方法来处理申请独占设备可能造成的死锁。 ⑶屏幕显示 注:屏幕显示要求包括:每个设备是否被使用,哪个进程在使用该设备,哪些进程在等待使用该设备。 设备管理模块详细设计 一、设备管理的任务 I/O设备是按照用户的请求,控制设备的各种操作,用于完成I/O 设备与内存之间的数据交换(包括设备的分配与回收,设备的驱动管理等),最终完成用户的I/O请求,并且I/O设备为用户提供了使用外部设备的接口,可以满足用户的需求。 二、设备管理函数的详细描述 1、检查设备是否可用(主要代码) public bool JudgeDevice(DeviceType type) { bool str = false; switch (type) { case DeviceType.a: {

Linux操作系统实习报告

桂林理工大学·信息科学与工程学院Linux操作系统报告 学院:信息科学与工程学院 班级:计算机2010-1 指导:王爱学 学号:3100717102 姓名:周杰 日期:2013年12月25日

【摘要】 Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。Linux是一个领先的操作系统,世界上运算最快的10台超级计算机运行的都是Linux操作系统。严格来讲,Linux这个词本身只表示Linux 内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。Linux得名于天才程序员林纳斯·托瓦兹。 Linux操作系统是UNIX操作系统的一种克隆系统,它诞生于1991 年的10 月5 日(这是第一次正式向外公布的时间)。以后借助于Internet网络,并通过全世界各地计算机爱好者的共同努力,已成为今天世界上使用最多的一种UNIX 类操作系统,并且使用人数还在迅猛增长。 【操作】 1.ls -l -a -F的区别 从图中可以看出,-a,-l,-F的特点: 单纯的ls命令不能显示隐藏文件,需要-a才能显示文件名以.开头的隐藏文件和文件夹 ls -l则可以以长格式显示文件信息 ls -F则是:在列出的文件目录名称后加一符号例如可执行文件加"*", 目录则加"/"

2. cd 命令 cd 这个命令是用来进出目录的它的使用方法和在dos下没什么两样,但和dos不同的是Linux 的目录对大小写是敏感的,如果大小写拼写有误,你的cd操作是成功不了的,另外cd 如果直接输入cd 后面不加任何东西会回到使用者自己的Home,目录假设如果是root,那就是回到/root,这个功能同cd ~是一样的 3. mkdir rmdir mkdir 命令用来建立新的目录如输入如下命令 mkdir zj 将在当前目录下新建一个zj 目录 rmdir 用来删除已建立的目录如输入如下命令 rmdir zj 将删除已存在的空目录zj 4. cp

操作系统课程设计报告

东莞理工学院 操作系统课程设计报告 学院:计算机学院 专业班级:13软件工程1班 提交时间:2015/9/14 指导教师评阅意见: . 项目名称:进程与线程管理功能 一、设计目的 用语言来模拟进程和线程管理系统,加深对进程和线程的理解,掌握对进程和线程各种状态和管理的算法原理。 二、环境条件

系统:WindowsXP、VMWare、Ubuntu Linux 语言:C/C++ 开发工具:gcc/g++、Visual C++ 6.0 三、设计内容 1. 项目背景 计算机的硬件资源有限,为了提高内存的利用率和系统的吞吐量,就要根据某种算法来管理进程和线程的状态从而达到目的。 进程与线程管理功能完成基于优先级的抢占式线程调度功能,完成进程虚拟内存管理功能。 进程与线程管理功能 基本要求:完成基于优先级的抢占式线程调度功能,完成进程虚拟内存管理功能。 提高要求:(增加1项就予以加分) (1) 实现多种线程调度算法; (2)通过“公共信箱”进行通信的机制,规定每一封信的大小为128字节,实现两个用户进程之间通过这个“公共信箱”进行通信。 (3) 实现多用户进程并发的虚拟内存管理功能。 (4) 实现用户进程间通信功能,并用生产者/消费者问题测试进程间通信功能的正确性。 (5) 实现改进型Clock页面置换算法。 (6) 实现Cache功能,采用FIFO替换算法。

2. 扩展内容 实现多种线程调度算法:时间片轮转调度算法 四、人员分工 优先级调度算法:钟德新,莫友芝 时间片轮转调度算法:张德华,袁马龙 设计报告由小组队员共同完成。小组成员设计的代码分工如下:钟德新编写的代码:void Prinft(){ PCB *p; system("cls");//清屏 p=run; //运行队列 if(p!=NULL) { p->next=NULL; } cout<<"当前正在运行的进程:"<procname<<"\t\t"<pri<<"\t"<needOftime<<"\t\t"<runtime<<"\t\t"<state<next; } cout<procname<<"\t\t"<pri<<"\t"<needOftime<<"\t\t"<runtime<<"\t\t"<state<next; } cout<procname<<"\t\t"<pri<<"\t"<needOftime<<"\t\t"<runtime<<"\t\t"<state<

操作系统实验报告

操作系统教程 实 验 指 导 书 姓名: 学号: 班级:软124班 指导老师:郭玉华 2014年12月10日

实验一WINDOWS进程初识 1、实验目的 (1)学会使用VC编写基本的Win32 Consol Application(控制台应用程序)。 (2)掌握WINDOWS API的使用方法。 (3)编写测试程序,理解用户态运行和核心态运行。 2、实验内容和步骤 (1)编写基本的Win32 Consol Application 步骤1:登录进入Windows,启动VC++ 6.0。 步骤2:在“FILE”菜单中单击“NEW”子菜单,在“projects”选项卡中选择“Win32 Consol Application”,然后在“Project name”处输入工程名,在“Location”处输入工程目录。创建一个新的控制台应用程序工程。 步骤3:在“FILE”菜单中单击“NEW”子菜单,在“Files”选项卡中选择“C++ Source File”, 然后在“File”处输入C/C++源程序的文件名。 步骤4:将清单1-1所示的程序清单复制到新创建的C/C++源程序中。编译成可执行文件。 步骤5:在“开始”菜单中单击“程序”-“附件”-“命令提示符”命令,进入Windows“命令提示符”窗口,然后进入工程目录中的debug子目录,执行编译好的可执行程序: E:\课程\os课\os实验\程序\os11\debug>hello.exe 运行结果 (如果运行不成功,则可能的原因是什么?) : 有可能是因为DOS下路径的问题 (2)计算进程在核心态运行和用户态运行的时间 步骤1:按照(1)中的步骤创建一个新的“Win32 Consol Application”工程,然后将清单1-2中的程序拷贝过来,编译成可执行文件。 步骤2:在创建一个新的“Win32 Consol Application”工程,程序的参考程序如清单1-3所示,编译成可执行文件并执行。 步骤3:在“命令提示符”窗口中运行步骤1中生成的可执行文件,测试步骤2中可执行文件在核心态运行和用户态运行的时间。 E:\课程\os课\os实验\程序\os12\debug>time TEST.exe 步骤4:运行结果 (如果运行不成功,则可能的原因是什么?) : 因为程序是个死循环程序 步骤5:分别屏蔽While循环中的两个for循环,或调整两个for循环的次数,写出运行结果。 屏蔽i循环: 屏蔽j循环: _______________________________________________________________________________调整循环变量i的循环次数:

相关主题
文本预览
相关文档 最新文档