文档库 最新最全的文档下载
当前位置:文档库 › 操作系统实验报告——进程通讯

操作系统实验报告——进程通讯

操作系统实验报告——进程通讯
操作系统实验报告——进程通讯

北京邮电大学软件学院

2019-2020学年第1学期实验报告

课程名称:操作系统

实验名称:进程通讯

实验完成人:

日期: 2019 年 10 月 16日

一、实验目的

(1)消息缓冲队列、共享存储区机制进行进程间的通信;

(2)理解通信机制。

二、实验内容

1.使用消息缓冲队列来实现client 进程和server 进程之间的通信server 进程先建立一个关键字为SVKEY(如75)的消息队列,然后等待接收类型为REQ (例如1)的消息;在收到请求消息后,它便显示字符串“serving for client”和接收到的client 进程的进程

标识数,表示正在为client 进程服务;然后再向client 进程发送应答消息,该消息的类型是client 进程的进程标识数,而正文则是server 进程自己的标识ID。client 进程则向消息队列发送类型为REQ 的消息(消息的正文为自己的进程标识ID)以取得sever 进程的服务,并等待server 进程发来的应答;然后显示字符串“receive reply from”和接收到的server 进程的标识ID。

2. 使用共享存储区来实现两个进程之间的进程通信进程A 创建一个长度为512 字节的共享内存,并显示写入该共享内存的数据;进程B 将共享内存附加到自己的地址空间,并向共享内存中写入数据。

三、实验环境

Vmware下采用Kali Linux虚拟机,利用gcc 8.3.0完成

四、实验过程描述

实验过程内容分析与相关原理介绍:

实验1:

消息在实际运行当中是一种数据结构,叫做消息缓冲结构体,一般定义为:

struct msg {

long mtype;

char mtext[size];

};

消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。每个数据块都被认为含有一个类型,接收进程可以独立地接收含有不同类型的数据结构。

主要函数:

1、可以使用msgget去创建或访问一个消息队列,msgget使用一个key作为创建消息队列的标识。这个key指定为IPC_PRIVATE时,此队列会新建出来.

2、使用msgsnd函数来向消息队列发送消息。原型为

int msgsend(int msgid, const void *msg_ptr, size_t msg_sz, int msgflg);

指针msg_ptr所指向的消息结构是上边定义的结构体,以一个长整型成员变量开始,接收函数将用这个成员来确定消息的类型。msg_sz是msg_ptr指向的消息的长度

3、使用msgrcv函数从消息队列读取消息。原型为:

int msgrcv(int msgid, void *msg_ptr, size_t msg_st, long int msgtype, int msgflg);

msgtype可以实现一种简单的接收优先级。如果msgtype为0,就获取队列中的第一个消息。如果它的值大于零,将获取具有相同消息类型的第一个信息。调用成功时,该函数返回放到接收缓存区中的字节数,消息被复制到由msg_ptr指向的用户分配的缓存区中,然后删除消息队列中的对应消息。失败时返回-1。

4、使用getpid()获得此进程数。

进程活动分析:

Server进程:

先创建key为SVKEY的消息队列,之后用msgrcv()函数接受client的消息,并获得client 的进程数同时打印语句。之后将消息中的数据改为server进程自己的进程数,调用msgsnd()函数向消息队列发送消息。

Clinet进程:

打开SVKEY消息队列,调用msgsnd函数向消息队列发送消息,即自己的进程id,然

后调用msgrcv()从消息队列接受消息(来自server的),并打印数据。

实验2:

共享内存就是允许两个不相关的进程访问同一个逻辑内存。这两个进程都可以访问共享内存中的地址。而如果某个进程向共享内存写入数据,所做的改动将立即影响到可以访问同一段共享内存的任何其他进程。

共享内存结构体:

typedef struct shared_memory

{

int written; //0代表可写,1代表可读

char text[512];

}SM;

主要函数:

1、shmget函数该函数用来创建共享内存。原型为:

int shmget(key_t key, size_t size, int shmflg);

参数key(非0整数)为共享内存段命名,size以字节为单位指定需要共享的内存容量,shmflg是权限标。shmget函数成功时返回一个与key相关的共享内存标识符(非负整数),用于后续的共享内存函数。调用失败返回-1.

2、shmat函数用来启动对该共享内存的访问,并把共享内存连接到当前进程的地址空间。原型为:

void *shmat(int shm_id, const void *shm_addr, int shmflg);

shm_id是由shmget函数返回的共享内存标识。shm_addr指定共享内存连接到当前进程中的地址位置,通常为空,表示让系统来选择共享内存的地址。shm_flg是一组标志位,通常为0。调用成功时返回一个指向共享内存第一个字节的指针,如果调用失败返回-1. 3、shmdt函数该函数用于将共享内存从当前进程中分离。原型为:

int shmdt(const void *shmaddr);

shmaddr是shmat函数返回的地址指针,调用成功时返回0,失败时返回-1.

4、shmctl函数用来控制共享内存,原型为:

int shmctl(int shm_id, int command, struct shmid_ds *buf);

shm_id是由shmget函数返回的共享内存标识。Command控制相关状态。Buf为共享内存管理结构体。

进程活动分析:

A进程:

先调用shmget来创建一个共享内存对象,再调用shmat来访问此内存(将共享内存连接到当前进程的地址空间)。当此内存可以读取的时候(written=1)就读取内存中写入的数据并打印,然后设置此内存可写(written=0)。最后调用shmdt把共享内存从当前进程中分离,并用shmctl删除此共享内存。

B进程:

先创建共享内存,并调用shmat来将共享内存连接到当前进程的地址空间。当进程A读取数据还没读完(written==1)就等待,A读取完后(written==0)就可向其中写数据。写完数据后设置共享内存段可读(written=1).最后调用shmdt把共享内存从进程中分离。

实验总结:

进程间通信可利用消息队列或共享内存的方式来进行。这次实践我学到了

两种进程间通信方式,对消息队列以及共享内存的结构有了更进一步的理解。学会了几个重要函数的使用方法。

五、实验结果

(说明实验完成情况)

实验1:client进程和server进程互相发送消息实现通信

实验2:B进程对共享内存进行了写,A进程进行了读

六、附件

6.1 附件1:源代码

实验1

#include

#include

#include

#include

#define REQ 1

#define SVKEY 75

struct msgform

{

long mtype;

char mtext[250];

}msg;

int msgqid,pid,*pint,i;

void client()

{

msgqid=msgget(SVKEY,0777);//打开消息队列

pid =getpid(); //得到自己的pid

pint=(int*)msg.mtext; //指向消息正文

*pint=pid; //将正文改为自己的pid值

msg.mtype=REQ; //设置消息类型

msgsnd(msgqid,&msg,250,0); //发送消息

msgrcv(msgqid,&msg,250,pid,0); //接受server发的消息

printf("client:receive reply from pid=%d\n",*pint); //打印结果

exit(0);

}

void server()

{

msgqid=msgget(SVKEY,0777|IPC_CREAT); //创建消息队列

msgrcv(msgqid,&msg,250,REQ,0); //接收client的消息

pint=(int *)msg.mtext;

pid=*pint; //获取client的pid

printf("(server):serving for client pid=%d\n",pid);

msg.mtype=pid; //消息类型为client的pid

*pint=getpid();

msgsnd(msgqid,&msg,250,0);

exit(0);

}

int main()

{

int pid1=fork(); //创建进程

if(!pid1) server();

int pid2=fork();

if(!pid2) client();

wait(0);

wait(0);

}

实验2

#include

#include

#include

#include

#include

#include

#define KEY 144

typedef struct shared_memory

{

int written;

char text[512];

}SM;

void A(){

int running=1;

int shmid;

shmid=shmget(KEY,sizeof(SM),0666|IPC_CREAT); //获取共享内存

void *shm=NULL;

SM* shared;

shm=shmat(shmid,NULL,0); /打开共享内存

shared=(SM*)shm;

shared->written=0;

while(running)

{

if(shared->written!=0) //共享内存被写过后

{

printf("Read Shared

Memory:%s",shared->text);

shared->written=0; //设为可再写

running=0; //退出循环

}

else sleep(1);

}

shmdt(shm); //分离共享内存

shmctl(shmid,IPC_RMID,0); //删除共享内存

exit(0);

}

void B(){

int running=1;

void *shm=NULL;

SM *shared=NULL;

char buffer[512];

int shmid;

shmid=shmget(KEY,sizeof(SM),0666|IPC_CREAT); //创建共享内存

shm=shmat(shmid,NULL,0); //打开

shared=(SM*)shm;

while(running)

{

while(shared->written==1)

{

sleep(1);

printf("Waiting...\n");

}

printf("Enter some text:"); //写入数据

fgets(buffer,512,stdin);

strncpy(shared->text,buffer,512);

shared->written=1; //标记已经写过,可读 running=0; //退出循环

}

shmdt(shm);

exit(0);

}

int main()

{

int pid1=fork(); //创建进程

if(!pid1) A();

int pid2=fork();

if(!pid2) B();

wait(0);

wait(0);

}

第10周-《网络操作系统》复习题

训练课题:_《网络操作系统》复习题第__10_周 一、填空题 1、Windows Server2003有两种授权模式:(每服务器)和(每客户)。 2、在Active Directory中有两种类型的组:(本地用户账户)和(域用户账户)。 3、在安装Windows NT Server后, 系统会自动创建两个全局帐号, 一个是(administrator) , 另一个是(Guest)。 4、Windows 2000动态磁盘可支持多种特殊的动态卷,包括(简单卷)、(跨区卷)(RAID-5卷)、带区卷、镜像卷等。 5、NTFS权限有6个基本的权限:完全控制、(修改)、读取及运行、列出文件夹目录、(读取)、(写入)。 6、使用C类IP地址的网络可支持的主机数为(254 )台。 7、IP地址共占用(32)个二进制位,一般是以4个(十进制)进制数来表示。 8、在OSI参考模型中,TCP是(传输)层上的协议,IP是(网络)层上的协议。 9、DNS域名解析的方法主要有(递归查询法) , (迭代查询法) 10、DNS是一个分布式数据库系统,它提供将域名转换成对应的( IP 地址)信息。 11、FTP服务器默认使用TCP协议的(21)号端口。

12、Web服务使用的默认TCP端口号为(80) 13、通过对打印机设置优先级,可以让重要的文档优先打印。 14、Windows网络的管理方式有:工作组和域。 15、在一个TCP/IP网络中,实现为计算机自动分配IP地址的服务,叫做 DHCP服务。 16、为了向用户提供完全合格域名(FQDN)的解析功能,需要在网络中安装并配置DNS 服务器。 17、针对不同的用户和环境,Windows Server2003产品的版本有:标准版、 Web版、标准版、数据中心版。 18、在Windows Server 2003中安装活动目录的命令是____dcpromo_____,活动目录存放在____活动目录数据库__________中。 19、Windows Server 2003服务器的3种角色是__域控制器____、_成员服务器__、_独立服务器__。 20、一个基本磁盘最多可分为_4__个区,即__4__个主分区或___3___个主分区和一个扩展分区。 21、DNS顶级域名中表示商业组织的是___com___。 二、单项选择题 1、在Windows Server 2003支持的文件系统格式中,能够支持

操作系统-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;

网页设计实验报告

实验报告 课程名称网络技术基础实验项目TCP/IP协议配置实验仪器计算机 系别 专业 班级/学号 学生姓名 实验日期 成绩 指导教师

实验一 TCP/IP协议配置 一、实验目的(标题黑体小四) 1.熟练掌握模板的用法。 2.掌握CSS的用法。 3.掌握网站发布的方法。 二、实验内容 1. 创建和使用模板。 2. css的创建和使用。 3. 发布网站。 三、实验课时 4课时 四、实验步骤 创建网站 1、创建一个站点,并创建 images 文件夹存放图片。将示例图片拷贝至images 目录下 2、创建 CSS 文件,名称为 style.css,将其保存至 style文件夹。 3、创建模板文件 tpl.dwt,并保存。结果如下: (1) 给 tpl.dwt 附加样式表 style.css。 在 tpl.dwt 的空白处点击鼠标右键,选择“附加样式表”: 选择 style.css 文件: 完成后,在 tpl.dwt 的 head标签里有如下的代码: (2) 设置模板的背景颜色。打开 CSS 面板,为 style.css 新建一条 css 规则。过程如 下:

将背景颜色设为#ff1e70: 在 style.css 生成如下的代码: body { background-color: #ff1e70? } 3) 制作布局。插入一 2 行 2 列的表格。表格的宽度=316+634=950,其他的设置:让表格居中对齐。 (4) 消除表格两边的空隙。展开 CSS 样式表,双击 body: 双击 body后,打开“body的 CSS 规则定义”对话框,按照下面的方式设置:Style.css 的代码变为: body { background-color: #ff1e70? margin: 0px? }

操作系统实验报告--实验一--进程管理

实验一进程管理 一、目的 进程调度是处理机管理的核心内容。本实验要求编写和调试一个简单的进程调度程序。通过本实验加深理解有关进程控制块、进程队列的概念,并体会和了解进程调度算法的具体实施办法。 二、实验内容及要求 1、设计进程控制块PCB的结构(PCB结构通常包括以下信息:进程名(进程ID)、进程优先数、轮转时间片、进程所占用的CPU时间、进程的状态、当前队列指针等。可根据实验的不同,PCB结构的内容可以作适当的增删)。为了便于处理,程序中的某进程运行时间以时间片为单位计算。各进程的轮转时间数以及进程需运行的时间片数的初始值均由用户给定。 2、系统资源(r1…r w),共有w类,每类数目为r1…r w。随机产生n进程P i(id,s(j,k),t),0<=i<=n,0<=j<=m,0<=k<=dt为总运行时间,在运行过程中,会随机申请新的资源。 3、每个进程可有三个状态(即就绪状态W、运行状态R、等待或阻塞状态B),并假设初始状态为就绪状态。建立进程就绪队列。 4、编制进程调度算法:时间片轮转调度算法 本程序用该算法对n个进程进行调度,进程每执行一次,CPU时间片数加1,进程还需要的时间片数减1。在调度算法中,采用固定时间片(即:每执行一次进程,该进程的执行时间片数为已执行了1个单位),这时,CPU时间片数加1,进程还需要的时间片数减1,并排列到就绪队列的尾上。 三、实验环境 操作系统环境:Windows系统。 编程语言:C#。 四、实验思路和设计 1、程序流程图

2、主要程序代码 //PCB结构体 struct pcb { public int id; //进程ID public int ra; //所需资源A的数量 public int rb; //所需资源B的数量 public int rc; //所需资源C的数量 public int ntime; //所需的时间片个数 public int rtime; //已经运行的时间片个数 public char state; //进程状态,W(等待)、R(运行)、B(阻塞) //public int next; } ArrayList hready = new ArrayList(); ArrayList hblock = new ArrayList(); Random random = new Random(); //ArrayList p = new ArrayList(); int m, n, r, a,a1, b,b1, c,c1, h = 0, i = 1, time1Inteval;//m为要模拟的进程个数,n为初始化进程个数 //r为可随机产生的进程数(r=m-n) //a,b,c分别为A,B,C三类资源的总量 //i为进城计数,i=1…n //h为运行的时间片次数,time1Inteval为时间片大小(毫秒) //对进程进行初始化,建立就绪数组、阻塞数组。 public void input()//对进程进行初始化,建立就绪队列、阻塞队列 { m = int.Parse(textBox4.Text); n = int.Parse(textBox5.Text); a = int.Parse(textBox6.Text); b = int.Parse(textBox7.Text); c = int.Parse(textBox8.Text); a1 = a; b1 = b; c1 = c; r = m - n; time1Inteval = int.Parse(textBox9.Text); timer1.Interval = time1Inteval; for (i = 1; i <= n; i++) { pcb jincheng = new pcb(); jincheng.id = i; jincheng.ra = (random.Next(a) + 1); jincheng.rb = (random.Next(b) + 1); jincheng.rc = (random.Next(c) + 1); jincheng.ntime = (random.Next(1, 5)); jincheng.rtime = 0;

操作系统实验心得

1-1:通过这次小实验,是我更加了解Linux一些常用指令的操作以及其作用,对于一个刚开始接触lniux操作系统的初学者来说非常有用,助于以后能够更进一步学习Linux操作系统。 1-2:在实验过程中,使用VI编辑器虽然不能像window操作系统那样对文本进行熟练度编辑,但是,VI编辑器使用命令来操作,将可以锻炼我的记忆力、对键盘的熟练读,还能帮助我们尽快适应linux操作系统的操作。 1-3:原本对liunx下的编译和调试环境不是很熟悉,但通过这次的实验,让我熟悉了linux 下的编译器和调试器的使用。 实验中使用了gcc命令,gcc首先调用cpp进行预处理,在预处理过程中,对源代码文件中的文件包含(#include)、预编译语句(如宏定义#define等)进行分析。 当所有的目标文件都生成之后,gcc就调用ld来完成最后的关键性工作,这个阶段就是链接。在链接阶段,所有的目标文件被安排在可执行程序中的恰当的位置,同时,该程序所调用到的库函数也从各自所在的库中链接到合适的地方。 1-4:API 接口属于一种操作系统或程序接口。通过实验,我了解了Windows的这种机制,加深了对API函数的理解。 2-1:通过本次实验了解了一些常用进程管理命令的使用,例如ps、kill命令,了解到换个kill与killall的不同,对于linux操作系统下的进程的学习打下基础,更好的学习进程。 2-2:本次实验是熟悉掌握Linux 系统常用进程创建与管理的系统调用,linux下使用fork()创建子进程,与windows下CreateProcess()创建子进程完全不同,通过比较小组更好的理解和掌握了进程的创建,对于进程的管理的理解也有了清晰地认识。 实验中遇到fork函数返回2次结果,经过分析结果如下: 由于在复制时复制了父进程的堆栈段,所以两个进程都停留在fork函数中,等待返回。因为fork函数会返回两次,一次是在父进程中返回,另一次是在子进程中返回,这两次的返回值是不一样的。 调用fork之后,数据、堆栈有两份,代码仍然为一份但是这个代码段成为两个进程的共享代码段都从fork函数中返回,箭头表示各自的执行处。当父子进程有一个想要修改数据或者堆栈时,两个进程真正分裂。 2-3:通过这次实验对熟悉掌握和了解windows平台常用进线程控制API,有了更深刻的认识,认识到API函数对windows编程的重要性,了解进程线程在内存中的执行,特别认识互斥体Mutex对象,API函数一定要多用,才能记得。 3-1:该程序的输入变量具有限制,若输入除0和1的数据,则将视为0处理.改进的方法为修改if 语句中的条件为:1,即只要输入为非零,则有效。即逻辑表达式的值为真。(在逻辑数学里非零则表示为真!) 为了能较好的实现进程的同步,可以另外设一个标志量,标志临界资源是否正被访问,当a,b,c

网络操作系统复习题

一、单项选择题每小题2分 2.操作系统中采用多道程序设计技术来提高CPU和外部设备的() A.利用率 B.可靠性 C.稳定性 D.兼容性 答案:A 解析:多道程序设计的主要目的是充分利用系统的所有资源且尽可能地让它们并行操作。 3.允许在一台主机上同时连接多台终端,多个用户可以通过各自的终端同时交互地使用计算 机的操作系统是() A.网络操作系统 B.分布式操作系统 C.分时操作系统 D.实时操作系统 答案:C 解析:在一个系统中,如果多个用户分时地使用同一个计算机,那么这样的系统就称为分时系统。由此可知本题选C。 4.可以使系统并行操作更有效的是() A.采用进程 B.采用线程 C.采用分页存贮 D.采用批处理 答案:B 解析:采用线程提高系统的并行性比采用进程实现并行性更有效。 5.在下面对进程的描述中,不正确的是() A.进程是动态的概念

答案:D 解析:程序是指令的有序集合,是静态的概念;而程序和数据集合是进程存在的物质基础,即进程的实体。 6.在请求分页存储管理中,若采用FIFO页面淘汰算法,当分配的页面数增加时,缺页中断的 次数() A.减少 B.增加 C.无影响 D.可能增加也可能减少 答案:D 解析:缺页中断的次数与分配的页面数无关,因此在采用FIFO页面淘汰算法时中所产生的缺页中断的次数可能增加,也可能减少。 7.在下列文件的物理结构中,不利于文件长度动态增长的是() A.连续结构 B.串联结构 C.索引结构 D.Hash结构 答案:A 解析:连续结构是指一个逻辑文件的信息存放在文件存储器上的相邻物理块中,因此这种方法不利于文件长度动态增长。 8.位示图方法用于() A.进程的调度 B.盘空间的管理 C.文件的共享 D.进程间的通讯 答案:B 解析:位示图法为文件存储器存储空间建立一张位示图,用以反映整个存储空间的分配情况。

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

实验报告 实验课程: 计算机操作系统学生姓名: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 中的各个线程

Web网页设计实验报告

WEB系统开发 综合实验报告 题目红尘客栈网上订房页面 专业计算机科学与技术(信息技术及应用) 班级计信2班 学生蒋波涛 重庆交通大学 2013年

目录 一、设计目的 (3) 二、设计题目 (3) 三、结构设计 (3) 四、技术分析 (4) 五、设计过程 (7) 六、实验心得 (10) 七、实验总结 (11)

一、设计目的 在Internet飞速发展的今天,互联网成为人们快速获取、发布和传递信息的重要渠道,它在人们政治、经济、生活等各个方面发挥着重要的作用。因此网站建设在Internet 应用上的地位显而易见,它已成为政府、企事业单位信息化建设中的重要组成部分,从而倍受人们的重视。我们当代大学生更是离不开网络给我们带来的好处与便利.但是,我们成天浏览的网站网页到底是如何制作的呢?我想这一点很多同学都没有去深究过.所以,这学期我选择了”web网页设计”这门课, 本课程的设计目的是通过实践使同学们经历网页制作的全过程. 通过设计达到掌握网页设计、制作的技巧。 了解和熟悉网页设计的基础知识和实现技巧。根据题目的要求,给出网页设计方案,可以按要求,利用合适图文素材设计制作符合要求的网页设计作品。 熟练掌握Photoshop cs3、Dreamweaver cs等软件的的操作和应用。增强动手实践能力,进一步加强自身综合素质。学会和团队配合,逐渐培养做一个完整项目的能力。 二、设计题目 《红尘客栈》 三、结构设计 选定主题,确定题目之后,在做整个网站之前对网站进行需求分析。首先,做好需求调研。调研方式主要是上网查阅资料,在图书馆里翻阅相关书籍。 然后,调研结束之后对整个网站进行功能描述,并对网站进行总体规划,接着逐步细化。 我们选做的主题是个人主页,并且选定题目为“红尘客栈”,其目的是做一个简单的网站,介绍酒店概况,提供一定的资讯信息。 四、技术分析 (一)建立布局 在这次的网页设计中用到大量的布局,所以怎么样建立布局是关键。Dreamweaver cs3是大多数人设计网页的称手兵器,也是众多入门者的捷径。特别是其在布局方面的出色表现,更受青睐。大家都知道,没有表格的帮助,很难组织出一个协调合理的页面。 1.点击“ALT+F6”键,进入布局模式,插入布局表格。建立一个大概的布局。 2.使用背景图片:选中该项,按浏览可以插入一幅准备好的图片作为表格的背景,因为图片是以平铺的形式作为表格背景,所以表格大小和图片尺寸都要控制好。 (二)网页中的图像

嵌入式操作系统实验报告

中南大学信息科学与工程学院实验报告 姓名:安磊 班级:计科0901 学号: 0909090310

指导老师:宋虹

目录 课程设计内容 ----------------------------------- 3 uC/OS操作系统简介 ------------------------------------ 3 uC/OS操作系统的组成 ------------------------------ 3 uC/OS操作系统功能作用 ---------------------------- 4 uC/OS文件系统的建立 ---------------------------- 6 文件系统设计的原则 ------------------------------6 文件系统的层次结构和功能模块 ---------------------6 文件系统的详细设计 -------------------------------- 8 文件系统核心代码 --------------------------------- 9 课程设计感想 ------------------------------------- 11 附录-------------------------------------------------- 12

课程设计内容 在uC/OS操作系统中增加一个简单的文件系统。 要求如下: (1)熟悉并分析uc/os操作系统 (2)设计并实现一个简单的文件系统 (3)可以是存放在内存的虚拟文件系统,也可以是存放在磁盘的实际文件系统 (4)编写测试代码,测试对文件的相关操作:建立,读写等 课程设计目的 操作系统课程主要讲述的内容是多道操作系统的原理与技术,与其它计算机原理、编译原理、汇编语言、计算机网络、程序设计等专业课程关系十分密切。 本课程设计的目的综合应用学生所学知识,建立系统和完整的计算机系统概念,理解和巩固操作系统基本理论、原理和方法,掌握操作系统开发的基本技能。 I.uC/OS操作系统简介 μC/OS-II是一种可移植的,可植入ROM的,可裁剪的,抢占式的,实时多任务操作系统内核。它被广泛应用于微处理器、微控制器和数字信号处理器。 μC/OS 和μC/OS-II 是专门为计算机的嵌入式应用设计的,绝大部分代码是用C语言编写的。CPU 硬件相关部分是用汇编语言编写的、总量约200行的汇编语言部分被压缩到最低限度,为的是便于移植到任何一种其它的CPU 上。用户只要有标准的ANSI 的C交叉编译器,有汇编器、连接器等软件工具,就可以将μC/OS-II嵌入到开发的产品中。μC/OS-II 具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点,最小内核可编译至2KB 。μC/OS-II 已经移植到了几乎所有知名的CPU 上。 严格地说uC/OS-II只是一个实时操作系统内核,它仅仅包含了任务调度,任务管理,时间管理,内存管理和任务间的通信和同步等基本功能。没有提供输入输出管理,文件系统,网络等额外的服务。但由于uC/OS-II良好的可扩展性和源码开放,这些非必须的功能完全 可以由用户自己根据需要分别实现。 uC/OS-II目标是实现一个基于优先级调度的抢占式的实时内核,并在这个内核之上提供最基本的系统服务,如信号量,邮箱,消息队列,内存管理,中断管理等。 uC/OS操作系统的组成 μC/OS-II可以大致分成核心、任务处理、时间处理、任务同步与通信,CPU的移植等5个部分。如下图:

网络操作系统试卷-A(答案)

(10)运行Windows Server 2003的计算机的磁盘分区可以使用三种: FAT16 、FAT32 、 NTFS 类型的文件系统。 (11)Windows Server 2003将磁盘存储类型分为两种:基本磁盘存储和动态磁盘存储。 (12)系统管理员可以为访问服务器资源的客户机设置磁盘配额,也就是限制它们一次性访问服务器资源的卷空间数量。 (13)带区卷又称为 RAID-0 技术,RAID-1又称为镜像卷,RAID-5又称为具有奇偶校验的带区卷。 (14)WINS工作过程有名称注册、名称刷新、名称解析、名称释放四个阶段。 (15)DHCP是采用客户端/服务器模式。 (16)工作组模式的特点是采用分布式的管理方式,资源和用户账号分散在各个计算机上,每个计算机上都有一套目录数据库,用以验证在该计算机上创 建的本地用户。 二、单项选择题:(每小题二分,共四十分) (1)有一台服务器的操作系统是Windows 2000 Server,文件系统是NTFS,无任何分区,现要求对该服务进行Windows Server 2003的安装,保留原数据,但不保留操作系统,应使用下列( B )种方法进行安装才能满足需求。 A、在安装过程中进行全新安装并格式化磁盘 B、对原操作系统进行升级安装,不格式化磁盘 C、做成双引导,不格式化磁盘 D、重新分区并进行全新安装 (2)在设置域账户属性时( C )项目不能被设置。 A、账户登录时间 B、账户的个人信息 C、账户的权限 D、指定账户登录域的计算机 (3)下列( C )账户名不是合法的账户名。 A、abc_123 B、windows book C、dictionar* D、abdkeofFHEKLLOP (4)Windows Server 2003组策略无法完成下列( A )设置。 A、操作系统安装 B、应用程序安装 C、控制面板 D、操作系统版本更新

简单网页制作实验总结报告

《大学计算机基础》 实验报告 专业名称: 电子商务2班 学号: xxxxxxxxxxx 姓名: x x 指导教师: x x 2011年12月24日

目录 第一章网站主题设计说明 (1) 1.1 主题内容 (1) 1.2 设计思路 (1) 第二章网站内容设计 (2) 1.1 链接1标题 (2) 1.2 链接2标题 (2) 1.3 flash制作说明 (2) 第三章网站技术难点 (3) 第四章心得体会..................................... ..... ......................... (4)

第一章网站主题设计说明 1.1 主题内容 (1) 网站主题为“四季の花”,包括春夏秋冬四个季节的比较典型的花朵及有关花的诗句,色彩缤纷,十分艳丽夺目。 1.2 设计思路 (2) 大多网站都设计的关于音乐,影视,购物等非常热门的东西,本站设计的主题是花,能让人们在闲下来的时候看看花,品品诗歌,所以做有关花的网页是个不错的选择。同时,让人们分清楚春夏秋冬都各有什么典型的花。

第二章网站内容设计 1.1链接1标题:春の花 春天是生命的季节,在这个季节里,万物复苏。所以就找了虞美人,桃花,牡丹,以及海棠花来作为春天的代表。同时配有与这些花有关的诗句。 1.2 链接2标题:夏の花 夏天充满了激情与阳光,我找了兰花,荷花,百合花等来代表这个季节,色彩艳丽,十分醒目夺人。 1.3 链接3标题:秋の花 大丽花,菊花,月季和牡丹花都竞相出现在本网页,色彩缤纷,赏心悦目。 1.4 链接4标题:冬の花 蝴蝶兰,水仙,迎春花,梅花是冬季的代表,他们刻画了一副傲立冬天的坚强的姿态。

实时操作系统报告

实时操作系统课程实验报告 专业:通信1001 学号:3100601025 姓名:陈治州 完成时间:2013年6月11日

实验简易电饭煲的模拟 一.实验目的: 掌握在基于嵌入式实时操作系统μC/OS-II的应用中,基于多任务的模式的编程方法。锻炼综合应用多任务机制,任务间的通信机制,内存管理等的能力。 二.实验要求: 1.按“S”开机,系统进入待机状态,时间区域显示当前北京时间,默认模式“煮饭”; 2.按“C”选择模式,即在“煮饭”、“煮粥”和“煮面”模式中循环选择; 3.按“B”开始执行模式命令,“开始”状态选中,时间区域开始倒计时,倒计时完成后进入“保温”状态,同时该状态显示选中,时间区域显示保温时间; 4.按“Q”取消当前工作状态,系统进入待机状态,时间区域显示北京时间,模式为当前模式; 5.按“X”退出系统,时间区域不显示。 6.煮饭时长为30,煮粥时长为50,煮面时长为40. 三.实验设计: 1.设计思路: 以老师所给的五个程序为基础,看懂每个实验之后,对borlandc的操作有了大概的认识,重点以第五个实验Task_EX为框架,利用其中界面显示与按键扫描以及做出相应的响应,对应实现此次实验所需要的功能。 本次实验分为界面显示、按键查询与响应、切换功能、时钟显示与倒计时模块,综合在一起实验所需功能。 2.模块划分图: (1)界面显示: Main() Taskstart() Taskstartdispinit() 在TaskStartDispInit()函数中,使用PC_DispStr()函数画出界面。

(2)按键查询与响应: Main() Taskstart() 在TaskStart()函数中,用if (PC_GetKey(&key) == TRUE)判断是否有按键输入。然后根据key 的值,判断输入的按键是哪一个;在响应中用switch语句来执行对应按键的响应。 (3)切换功能: l计数“C”按 键的次数 M=l%3 Switch(m) M=0,1,2对应于煮饭,煮粥,煮面,然后使用PC_DispStr()函数在选择的选项前画上“@”指示,同时,在其余两项钱画上“”以“擦出”之前画下的“@”,注意l自增。 四.主要代码: #include "stdio.h" #include "includes.h" #include "time.h" #include "dos.h" #include "sys/types.h" #include "stdlib.h" #define TASK_STK_SIZE 512 #define N_TASKS 2 OS_STK TaskStk[N_TASKS][TASK_STK_SIZE]; OS_STK TaskStartStk[TASK_STK_SIZE]; INT8U TaskData[N_TASKS];

网络操作系统最主要的作用是处理

网络操作系统最主要的作用是处理 B 资源的最大共享及资源共享的局限性之间的矛盾 下面关于Windowns NT描述正确的是 D 如果BDC出现故障,PDC可以转换为BDC UNIX系统中具有最高权限的用户名是 B.root Netware的核心协议(NCP)提供了一系列的 D 控制协议 网络通信软件的任务是根据协议来控制和管理 D 程序间通信 Netware采用的通信协议是 D SPX/IPX ====================================================================== 1.Windows NT是一种(). 多用户多进程系统 2.网络操作系统是一种()。 系统软件 3.网络操作系统为网络用户提供了两级接口:网络编程接口和()。 操作命令接口 4.构成网络操作系统信息机制的是()。 B.通信原语 5.网络操作系统主要解决的问题是()。 网络资源共享与网络资源安全访问限制 6.以下属于网络操作系统的工作模式为()。 Client/Server ===================================================================== 1, 下面的操作系统中,不属于网络操作系统的是() DOS

2. 对网络用户来说,操作系统是指() 一个资源管理者 3. UNIX是一种() 多用户多进程系统 4. 允许一台主机同时连接多台客户端,同时为多个客户端提供服务的计算机的操作系统是() 网络操作系统 5. 下列不属于网络操作系统的安全性的是() 用户能管理和中止系统运行 6.在客户/服务器模式下的网络操作系统主要是指() 服务器操作系统

网页制作实验报告

网页制作实验报告 页制作实验报告 实验一:站点设置 一、实验目的及要求 本实例是经过“站点定义为”对话框中的“高级”选项卡创建一具新站点。 二、仪器用具 1、生均一台多媒体电脑,组建内部局域,同时接入国际互联。 2、安装windows xp操作系统;建立iis服务器环境,支持asp。 3、安装页三剑客(dreamweaver mx;flash mx;fireworks mx)等页设计软件; 三、实验原理 经过“站点定义为”对话框中的“高级”选项卡创建一具新站点。 四、实验办法与步骤 1)执行“站点\治理站点”命令,在弹出的“治理站点”对话框中单击“新建”按钮,在弹出的快捷菜单中挑选“站点”命令。 2)在弹出的“站点定义为”对话框中单击“高级”选项卡。 3)在“站点名称”文本框中输入站点名称,在“默认文件夹”文本框中挑选所创建的站点文件夹。在“默认图象文件夹”文本框中挑选存放图象的文件夹,完成后单击“确定”按钮,返回“治理站点”对话框。 4)在“治理站点”对话框中单击“完成”按钮,站点创建完毕。 五、实验结果 六、讨论与结论 实验开始之前要先建立一具根文件夹,在实验的过程中把站点存在自己建的文件夹里,如此才干使实验条理化,别至于在实验后寻别到自己的站点。在实验过程中会浮现一些选项,计算机普通会有默认的挑选,最后别要去更改,假如要更改要先充分了解清晰该选项的含义,以及它会造成的效果,否则会使实验的结果失真。实验前先熟悉好操作软件是做好该实验的关键。 实验二:页面图像设置 一、实验目的及要求: 本实例的目的是设置页面的背景图像,并创建鼠标经过图像。 二、仪器用具 1、生均一台多媒体电脑,组建内部局域,同时接入国际互联。 2、安装windows xp操作系统;建立iis服务器环境,支持asp。 3、安装页三剑客(dreamweaver mx;flash mx;fireworks mx)等页设计软件; 4、安装acdsee、photoshop等图形处理与制作软件; 5、其他一些动画与图形处理或制作软件。 三、实验原理 设置页面的背景图像,并创建鼠标经过图像。 四、实验办法与步骤 1) 在“页面属性”对话框中设置页面的背景图像。 2) 在页面文档中单击“”插入鼠标经过图像。 五、实验结果

网络操作系统试题总汇要点

一、填空题 1.网络操作系统应具有()、存储管理、设备管理、文件管理、 ()和()管理的功能。 2.Windows NT有四个特殊组。包括Network组、()、Everyone组和 Greater Owner组。 3.工作组是以(源)为主要目的的一组计算机和用户。其特点是采用 ()的管理方式。 4.Windows NT可以支持的文件系统是(),但也对() 文件系统兼容。 5.成员服务器可以被提升为()。 6.对用户账号和共享资源实施管理的是()组。 7.UNIX系统中,一个文件的许可权有()、()和其他。 8.UNIX系统中,系统与用户终端之间建立连接和表明身份的过程称为()。 9.网络操作系统需要解决的一对矛盾是()和(性)。 10.在安装了Windows NT Server之后,系统会自动建立两个账号()和 ()。 11.在Windows NT中,组分为全局组、()和特殊组。 12.Microsoft Windows NT server 操作系统被设计用于()服务器。它既是一个 个人计算机操作系统,又是一个()。它将()和基本操作结合,易于使用和管理。 13.在Netware中建立一个用户账号,需要在NDS中创建一个用户对象,然后设置对象的 ()和()。 14.匿名账户的名称是()。 15.在Internet信息服务(IIS)管理器中,设置FTP站点的访问权限有 和。 16.传输层有(_ __)、(_ _)两种协议。 17.TCP/IP参考模型由(_)、(_)、()、 链路层4层组成。 18.一般情况下,核心内存的值越()越好。 19.能够标识一个Web网站的三个方面是()、()、 ()。 20.动态主机配置协议英文是(_ )。 21.电子邮件使用协议和协议完成邮件的收发工作。 22.假设一台客户机是由DHCP分配IP地址,当释放此IP地址时,可输入() 命令。 23.在网络中提供域名与IP地址解析服务的服务器是()。 24.Windows Server 2003有四个版本,分别为:、、、。 25.推荐Windows Server 2003安装在(_ )文件系统分区。 26.某企业规划有2台Windows Server 2003和50台Windows 2000 professional,每台服务 器最多只有15个人会同时访问,最好采用(_ )授权模式。

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

河北大学工商学院 课程设计 题目:操作系统课程设计 学部信息学部 学科门类电气信息 专业计算机 学号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: {

网页制作实验报告

北京理工大学珠海学院课程设计说明书 _2013_—_2014_学年第_1_学期 题目: 《Web应用开发课程设计》 学院:计算机学院 专业班级: 11级软件工程3班 学号: 110202031031 学生姓名:蒋征 指导教师:魏志军 成绩: 时间: 2014/1/5 2014年 1 月 5 日

摘要 本次作品是一个IT技术交流论坛,实现论坛的基本功能,注册、登录、发帖、浏览和回帖。 论坛分三个分板块,网页、C#和JA V A,纵向层次也是三层,主页、板块页和帖子页。网站使用JavaScript实现动态页面。 关键词:计算机技术交流社区JavaScript 网页 I

目录 摘要 ............................................. I 目录 ............................................. II 1 网站结构和布局 (1) 1.1 网站结构 (1) 1.1.1 总体结构 (1) 1.1.2 横向链接结构 (2) 1.2 页面布局 (3) 1.2.1 主页 (3) 1.2.2 分版页面 (6) 1.2.3 帖子页面 (6) 2 技术应用 (8) 2.1 逻辑设计 (8) 2.1.1 HTML和CSS设计 (8) 2.1.2 JavaScript设计 (10) 参考文献 (13) 心得体会 (14) I

教师评语 (15) 成绩评定表 (16) 课程设计答辩记录表 (17) II

1 网站结构 1.1主体结构 1.1.1总结构 网站是以技术交流社区为主题的论坛型网站。 这个网站是按树形结构设计如图1-1-1,页面种类共分三层,分别是主页,分主题页还有就是内容页。 主页连向三个分主题分区页面,分别是MTHL板块,C#板块还有就是JAVA 板块。 主题分区页面下面是内容帖子。 图1-1-1网页关系 1

嵌入式实时操作系统实验报告

嵌入式实时操作系统实验报告 任务间通信机制的建立 系别计算机与电子系 专业班级***** 学生姓名****** 指导教师 ****** 提交日期 2012 年 4 月 1 日

一、实验目的 掌握在基于嵌入式实时操作系统μC/OS-II的应用中,任务使用信号量的一般原理。掌握在基于优先级的可抢占嵌入式实时操作系统的应用中,出现优先级反转现象的原理及解决优先级反转的策略——优先级继承的原理。 二、实验内容 1.建立并熟悉Borland C 编译及调试环境。 2.使用课本配套光盘中第五章的例程运行(例5-4,例5-5,例5-6),观察运行结果,掌握信号量的基本原理及使用方法,理解出现优先级反转现象的根本原因并提出解决方案。 3.试编写一个应用程序,采用计数器型信号量(初值为2),有3个用户任务需要此信号量,它们轮流使用此信号量,在同一时刻只有两个任务能使用信号量,当其中一个任务获得信号量时向屏幕打印“TASK N get the signal”。观察程序运行结果并记录。 4. 试编写一个应用程序实现例5-7的内容,即用优先级继承的方法解决优先级反转的问题,观察程序运行结果并记录。 5.在例5-8基础上修改程序增加一个任务HerTask,它和YouTask一样从邮箱Str_Box里取消息并打印出来,打印信息中增加任务标识,即由哪个任务打印的;MyTask发送消息改为当Times为5的倍数时才发送,HerTask接收消息采用无等待方式,如果邮箱为空,则输出“The mailbox is empty”, 观察程序运行结果并记录。 三、实验原理 1. 信号量 μC/OS-II中的信号量由两部分组成:一个是信号量的计数值,它是一个16位的无符号整数(0 到65,535之间);另一个是由等待该信号量的任务组成的等待任务表。用户要在OS_CFG.H中将OS_SEM_EN开关量常数置成1,这样μC/OS-II 才能支持信号量。

相关文档
相关文档 最新文档