文档库 最新最全的文档下载
当前位置:文档库 › 西安石油大学操作系统实验(进程及其管理)

西安石油大学操作系统实验(进程及其管理)

西安石油大学操作系统实验(进程及其管理)
西安石油大学操作系统实验(进程及其管理)

一,实验目的;

1.内容:设计一个简单的进程调度算法,模拟OS中的进程调度过程2.要求:①进程数不少于5个;

②进程调度算法任选;

最好选用动态优先数法,每运行一个时间片优先数减3

③用C++(或C)语言编程;

④程序运行时显示进程调度过程。

3.步骤:①设计PCB及其数据结构:

进程标识数:ID

进程优先数:PRIORITY(优先数越大,优先级越高)

进程已占用时间片:CPUTIME

进程尚需时间片:ALLTIME(一旦运行完毕,ALLTIME为0)

进程队列指针:NEXT,用来将PCB排成队列

进程状态:STATE(一般为就绪,不用)

②设计进程就绪队列及数据结构;

③设计进程调度算法,并画出程序流程图;

④设计输入数据和输出格式;

结构格式:当前正运行的进程:0

当前就绪队列:2,1,3,4

⑤编程上机,验证结果。

二,程序中所用数据结构及说明;

1,int a[5][4]={{0,9,0,3},{1,38,0,3},{2,30,0,6},{3,29,0,3},

{4,0,0,4}};

(利用数组将全部进程的状态全部输入进去)

2,flag=0;

for(i=0;i<5;i++)

{

flag+=a[i][3]; }

if(0==flag) break;

(这部分将所有需执行时间累加到flag,当所有执行时间为零时,程序结束

3, i=0;

while(1)

{

if(a[i][3]!=0)

{

temp=a[i][3];

k=i;

break;

}

else i++;

(此部分用于将需执行时间不为零的组作为基础组,用k和temp记录,跳过执行时间为零的组)

4,for(i=0;i<5;i++)

{

if(0==a[i][3])

continue;

(跳过执行时间为零的组)

if(a[i][1]>temp)

{

k=i;

temp=a[i][1]; }

(若有优先度大于基础组的,记录优先的组)

5,for(j=0;j<4;j++)

{

t=a[0][j];

a[0][j]=a[k][j];

a[k][j]=t;

}

(将优先组与a[0]组进行交换)

6, a[0][1]=a[0][1]-3;

a[0][3]=a[0][3]-1;

a[0][2]+=1;

(对a[0]进行操作)

三,程序清单及描述;

#include

int main()

{

int a[5][4]={{0,9,0,3},{1,38,0,3},{2,30,0,6},{3,29,0,3},

{4,0,0,4}};

int i, j, k,temp,t,flag;

while(1)

{

flag=0;

for(i=0;i<5;i++)

{

flag+=a[i][3];

}

if(0==flag) break;

i=0;

while(1)

{

if(a[i][3]!=0)

{

temp=a[i][3];

k=i;

break;

}

else

i++;

}

for(i=0;i<5;i++)

{

if(0==a[i][3]) continue;

if(a[i][1]>temp)

{

k=i;

temp=a[i][1];

}

}

for(j=0;j<4;j++)

{

t=a[0][j];

a[0][j]=a[k][j];

a[k][j]=t;

}

a[0][1]=a[0][1]-3;

a[0][3]=a[0][3]-1;

a[0][2]+=1;

printf("当前正在运行的进程:%d\n",a[0][0]);

printf("当前就绪队列:\n");

for(i=1; i<5; i++)

{

if(a[i][3]>0)

{

printf("%4d",a[i][0]);

}

}

printf("\n");

}

return 0;

}

四,执行结果;

计算机操作系统进程调度实验研究报告

计算机操作系统进程调度实验研究报告

————————————————————————————————作者:————————————————————————————————日期:

操作系统实验题:设计一若干并发进程的进程调度程序 一、实验目的 无论是批处理系统、分时系统还是实时系统,用户进程数一般都大于处理机数,这将导致用户进程互相争夺处理机。这就要求进程调度程序按一定的策略,动态地把处理及分配给处于就绪队列中的某一进程,以使之执行。进程调度是处理机管理的核心内容。本实验要求采用最高优先数优先的调度算法(即把处理机分配给优先数最高的进程)和先来先服务算法编写和调试一个简单的进程调度程序。通过本实验可以加深理解有关进程控制块、进程队列的概念。并体会了优先数和先来先服务调度算法的具体实施办法。 二、实验要求 用高级语言编写和调试一个进程调度程序,以加深对进程的概念及进程调度算法的理解. 三、实验内容 进程调度算法:采用最高优先数优先的调度算法(即把处理机分配给优先数最高的进程)和先来先服务算法(将用户作业和就绪进程按提交顺序或变为就绪状态的先后排成队列,并按照先来先服务的方式进行调度处理)。 每个进程有一个进程控制块(PCB)表示。进程控制块可以包含如下信息:进程名、优先数、到达时间、需要运行时间、已用CPU时间、进程状态等等。 进程的优先数及需要的运行时间可以事先人为地指定(也可以由随机数产生)。进程的到达时间为进程输入的时间。 进程的运行时间以时间片为单位进行计算。 每个进程的状态可以是就绪W(Wait)、运行R(Run)、或完成F(Finish)三种状态之一。 就绪进程获得CPU后都只能运行一个时间片。用已占用CPU时间加1来表示。 如果运行一个时间片后,进程的已占用CPU时间已达到所需要的运行时间,则撤消该进程,如果运行一个时间片后进程的已占用CPU时间还未达所需要的运行时间,也就是进程还需要继续运行,此时应将进程的优先数减1(即降低一级),然后把它插入就绪队列等待CPU。 每进行一次调度程序都打印一次运行进程、就绪队列、以及各个进程的PCB,以便进行检查。重复以上过程,直到所要进程都完成为止。 四、实验算法流程

西安石油大学数据库实验3索引及视图操作

实验报告 课程名称:学院名称:数据原理与应用计算机学院 专业班级:计1201 学生姓名:张文江 学号:201107010122

实验3 索引及视图操作 一、实验目的 1. 加深对索引和视图概念的理解。 2. 熟练掌握索引的创建和删除。 3. 熟练掌握视图的创建、修改和删除。 4. 熟练运用视图进行各种检索操作。 二、实验环境 硬件环境:PC机 软件环境:操作系统为Microsoft Windows 2000或以上版本。 数据库管理系统为Microsoft SQL Server 2000标准版或企业版。 三、实验内容 1. 熟悉运用SQL Server企业管理器和查询分析器进行索引的创建和删除。 2. 熟悉运用SQL Server企业管理器和查询分析器进行视图的创建、删除和修改。 四、实验步骤 1. 利用实验1已经建立并保存过的学生表、课程表,学生表按学号建立惟一索引,课程表按课程名建立惟一索引; create index S_sno on S(sno) create index C_cno on C(cno) 2. 利用实验1已经建立并保存过的学生表和选课表建立一个“网络工程”专业学生成绩视图JSGV(sno,cno,grade); create view JSGV(sno,cno,grade) as select S.sno,cno,grade from SC,S where dept='网络工程'and S.sno=SC.sno 利用视图JSGV查询“网络工程”专业的学生选课多于2门的学生学号; select distinct sno

from JSGV group by sno having (count(*)>2) 验证能否利用视图JSGV中插入一条“网络工程”专业学生选修“高等数学”课程的记录,并查询结果信息; insert into JSGV values('20080205','c03','85') 删除视图JSGV。 drop view JSGV 3. 利用实验1已经建立并保存过的学生表、课程表、选课表建立视图TOTAL(sno,sname,cname,grade); create view TOTAL(cno,sname,cname,grade) as select https://www.wendangku.net/doc/4c3509348.html,o,sname,cname,grade from SC,S,C where S.sno=SC.sno and https://www.wendangku.net/doc/4c3509348.html,o=https://www.wendangku.net/doc/4c3509348.html,o

操作系统实验-进程控制

实验一、进程控制实验 1.1 实验目的 加深对于进程并发执行概念的理解。实践并发进程的创建和控制方法。观察和体验进程的动态特性。进一步理解进程生命期期间创建、变换、撤销状态变换的过程。掌握进程控制的方法,了解父子进程间的控制和协作关系。练习Linux 系统中进程创建与控制有关的系统调用的编程和调试技术。 1.2 实验说明 1)与进程创建、执行有关的系统调用说明进程可以通过系统调用fork()创建子进程并和其子进程并发执行.子进程初始的执行映像是父进程的一个复本.子进程可以通过exec()系统调用族装入一个新的执行程序。父进程可以使用wait()或waitpid()系统调用等待子进程的结束并负责收集和清理子进程的退出状态。 fork()系统调用语法: #include pid_t fork(void); fork 成功创建子进程后将返回子进程的进程号,不成功会返回-1. exec 系统调用有一组6 个函数,其中示例实验中引用了execve 系统调用语法: #include int execve(const char *path, const char *argv[], const char * envp[]); path 要装入 的新的执行文件的绝对路径名字符串. argv[] 要传递给新执行程序的完整的命令参数列表(可以为空). envp[] 要传递给新执行程序的完整的环境变量参数列表(可以为空).

Exec 执行成功后将用一个新的程序代替原进程,但进程号不变,它绝不会再返回到调用进程了。如果exec 调用失败,它会返回-1。 wait() 系统调用语法: #include #include pid_t wait(int *status); pid_t waitpid(pid_t pid,int *status,int option); status 用 于保留子进程的退出状态 pid 可以为以下可能值: -1 等待所有PGID 等于PID 的绝对值的子进程 1 等待所有子进程 0 等待所有PGID 等于调用进程的子进程 >0 等待PID 等于pid 的子进程option 规 定了调用waitpid 进程的行为: WNOHANG 没有子进程时立即返回 WUNTRACED 没有报告状态的进程时返回 wait 和waitpid 执行成功将返回终止的子进程的进程号,不成功返回-1。 getpid()系统调用语法: #include #include pid_t getpid(void); pid_t getppid(void); getpid 返回当前进程的进程号,getppid 返回当前进程父进程的进程号 2)与进程控制有关的系统调用说明可以通过信号向一个进程发送消息以控制进程的 行为。信号是由中断或异常事件引发的,如:键盘中断、定时器中断、非法内存引

操作系统实验实验1

广州大学学生实验报告 1、实验目的 1.1、掌握进程的概念,明确进程的含义 1.2、认识并了解并发执行的实质 2.1、掌握进程另外的创建方法 2.2、熟悉进程的睡眠、同步、撤消等进程控制方法 3.1、进一步认识并发执行的实质 3.2、分析进程竞争资源的现象,学习解决进程互斥的方法 4.1、了解守护进程 5.1、了解什么是信号 5.2、INUX系统中进程之间软中断通信的基本原理 6.1、了解什么是管道 6.2、熟悉UNIX/LINUX支持的管道通信方式 7.1、了解什么是消息 7.2、熟悉消息传送的机理 8.1、了解和熟悉共享存储机制 二、实验内容 1.1、编写一段程序,使用系统调用fork( )创建两个子进程。当此程序运行时,在系统 中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示'a',子进程分别显示字符'b'和字符'c'。试观察记录屏幕上的显示结果,并分析原因。 1.2、修改上述程序,每一个进程循环显示一句话。子进程显示'daughter …'及 'son ……',父进程显示'parent ……',观察结果,分析原因。 2.1、用fork( )创建一个进程,再调用exec( )用新的程序替换该子进程的内容 2.2、利用wait( )来控制进程执行顺序 3.1、修改实验(一)中的程序2,用lockf( )来给每一个进程加锁,以实现进程之间的互斥 3.2、观察并分析出现的现象 4.1、写一个使用守护进程(daemon)的程序,来实现: 创建一个日志文件/var/log/Mydaemon.log ; 每分钟都向其中写入一个时间戳(使用time_t的格式) ; 5.1、用fork( )创建两个子进程,再用系统调用signal( )让父进程捕捉键盘上来的中断信号(即按^c键);捕捉到中断信号后,父进程用系统调用kill( )向两个子进程发出信号,子进程捕捉到信号后分别输出下列信息后终止: Child process1 is killed by parent! Child process2 is killed by parent! 父进程等待两个子进程终止后,输出如下的信息后终止: Parent process is killed! 5.2、用软中断通信实现进程同步的机理

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

实验一进程管理 一、目的 进程调度是处理机管理的核心内容。本实验要求编写和调试一个简单的进程调度程序。通过本实验加深理解有关进程控制块、进程队列的概念,并体会和了解进程调度算法的具体实施办法。 二、实验内容及要求 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;

西安石油大学计算机基础理论题题库

理论题部分(共20 分) 一、选择题(每道题1分,共20分) 1、CPU主要由运算器与控制器组成,下列说法中正确的是() A、运算器主要负责分析指令,并根据指令要求作相应的运算 B、运算器主要完成对数据的运算,包括算术运算和逻辑运算 C、控制器主要负责分析指令,并根据指令要求作相应的运算 D、控制器直接控制计算机系统的输入与输出操作 2、下列叙述正确的是() A、计算机病毒只能传染给可执行文件 B、计算机软件是指存储在软盘中的程序 C、计算机每次启动的过程之所以相同,是因为RAM中的所有信息在关机后不会丢失 D、硬盘虽然装在主机箱内,但它属于外存 3、一个字长的二进制位数是() A、8 B、16 C、32 D、随计算机系统而不同的 4、下列叙述中正确的是() A、将数字信号变换成便于在模拟通信线路中传输的信号称为调制 B、以原封不动的形式将来自终端的信息送入通信线路称为调制解调 C、在计算机网络中,一种传输介质不能传送多路信号 D、在计算机局域中,只能共享软件资源,而不能共享硬件资源 5、使用超大规模集成电路制造的计算机应该归属于() A、第一代 B、第二代 C、第三代 D、** 6、一片存储容量是1.44MB的软盘,可以存储大约140万个() A、ASCII字符 B、中文字符 C、磁盘文件 D、子目录 7、磁盘处于写保护状态,那么磁盘中的数据() A、不能读出,不能删改,也不能写入新数据 B、可以读出,不能删改,也不能写入新数据 C、可以读出,可以删改,但不能写入新数据 D、可以读出,不能删改,但可以写入新数据 8、CD-ROM属于() A、感觉媒体 B、表示媒体 C、表现媒体 D、存储媒体 9、在因特网(Internet)中,电子公告板的缩写是() A、FTP B、WWW C、BBS D、E-mail 10、Windows中,将一个应用程序窗口最小化之后,该应用程序() A、仍在后台运行 B、暂时停止运行 C、完全停止运行 D、出错 11、CPU处理的数据基本单位为字,一个字的字长() A、为8个二进制位 B、为16个二进制位 C、为32个二进制位 D、与CPU芯片的型号有关 12、打印当前屏幕内容应使用的控制键是() A、Scroll-Lock B、Num-Lock C、Pgdn D、PrtSc(Print Scorccn) 13、3.5英寸软盘片的一个角上有一个滑动块,若移动该滑动块露出一个小孔,则该软盘() A、不能读但能写 B、不能读出不能写 C、只能读不能写 D、能读写 14、控制键^C的功能为() A、终止当前操作 B、系统复位 C、暂停标准输出设备的输出 D、结束命令行 15、按通信距离划分,计算机网络可以分为局域网和广域网。下列网络中属于局域网的是()

操作系统实验报告(进程的创建)(DOC)

实验题目进程的创建小组合作否姓名班级学号 一、实验目的 1、了解进程的创建。 2、了解进程间的调用以及实现。 3、分析进程竞争资源的现象,学习解决互斥的方法。 4、加深对进程概念的理解,认识并发执行的本质。 二.实验环境 Windows 系统的计算机一台,安装了Linux虚拟机 三、实验内容与步骤 1、fork()系统调用的使用例子 程序代码: #include #include #include int glob=3; int main(void) { pid_t pid;int loc=3; printf("before fork();glod=%d,loc=%d.\n",glob,loc); if((pid=fork())<0) { printf("fork() error. \n"); exit(0); } else if(pid==0) { glob++; loc--; printf("child process changes glob and loc: \n"); } else

wait(0); printf("parent process doesn't change the glob and loc:\n"); printf("glob=%d,loc=%d\n",glob,loc); exit(0); } 运行结果: 2、理解vofork()调用: 程序代码: #include #include #include int glob=3; int main(void) { pid_t pid; int loc=3; if((pid=vfork())<0) { printf("vfork() error\n"); exit(0); } else if(pid==0) { glob++; loc--; printf("child process changes the glob and loc\n"); exit(0); } else printf ("parent process doesn't change the glob and loc\n"); printf("glob=%d,val=%d\n",glob,loc);

ASP设计大作业

《A S P.N E T》 课程大作业 ——学生评教管理系统设计报告 西安石油大学经济管理学院 班级:商务1402 组号:6组 组员:王煊南少兵

第1章系统概述 (1) 第2章相关技术 (2) 第3章系统分析 (3) 第4章系统设计 (4) 第5章系统实现 (5) 第6章总结 (6)

(1)章标题(黑体,小二号,加粗,居中) 每章另起一页!!! (2)节标题(字体,宋体,四号,加粗) (3)目录和正文(字体,宋体,小四号) 正文行间距:20磅 本页显示的内容不要出现在最终提交的报告中(定稿后删掉本页)!!!

第1章系统概述 1.1 系统背景 教育理论与教育实践如何统一是当前教育界亟待解决的问题。教学评估系统是教育理论和教育实践的中间环节,教育评价有助于教育理论与教育实践达到统一。评教系统是在教学的过程中,通过学生在学习过程中的反馈信息,对教师的授课情况的一项调查,目的是为了及时的了解教师与学生之间在教与学的过程中所遇到的问题,有针对性的开展教学工作,提高教学质量。教学评估在高校的整个教学过程中,起着很大的作用。 1.2 开发目的 随着因特网技术的飞速发展为校园带来了全新的信息产业时代,以往的教学评价分析工作将得到彻底的改革和规范。因为过去传统的教学评价与分析方式已经不能满足膨胀的校园信息管理剧增的客观要需求,这就需要一种全新的评价及分析方式—计算机评价分析[2]。利用教学评价系统,可促进教师教学质量评价工作的规范化、程序化,提高工作效率,保证评价工作的质量。以数据库管理系统为核心,以计算机网络为平台,向校内各部门、各教职工提供方便、及时、准确的信息查询,实现数据共享,满足学校各种管理的需要[3]。以此来缓解手工评价及分析的压力,并为学生和教师提供方便快捷的教学评价及分析方式,这对促进学校建设有积极的意义。根据现在的基于Web的学生评教系统的实现功能和应用技术来看,主要呈现以下几点: 1)系统普遍性能较差,工作效率低,数据库陈旧,系统结构不完 善,严重阻碍了教学评价及分析工作的开展。 2)系统自动恢复性能较差,当出现错误时不能迅速恢复。 3)系统内部结构单一,只能处理较少的评价及分析工作,而且登陆 人数有限,不能满足大量用户同时登录使用。 4)系统查询功能单一。 5)系统操作复杂,操作费时方法落后,影响教学评价分析工作的效 率。 因此,新的教学评价分析系统在保留原先系统的优点的同时还要解决以上这些缺点。新的教学评价分析系统性能优秀,结构完善,容易掌握,使教学评价工作更快速更有效地完成。新系统克服了老系统只能处理较少评价的缺点,支持管理员,学生,教师等多种权限的登录,能满足大量用户的使用。而且新的教学评价分析系统操作简单,易于掌握,大大加快了教学评价和分析工作的

操作系统实验报告进程调度

五邑大学实验报告 操作系统课程 2016~2017年度第1学期实验题目:进程调度 院系:计算机学院 班级: 140801 学号: 3114002472 姓名:黄凯鑫 任课教师:白明成绩评定:

实验二题目:进程调度 完成日期:2016年12 月11 日 1、实验目的 (1)设计一个有n个进程工行的进程调度程序。每个进程由一个进程控制块(PCB)表示。进程控制块通常应包含下述信息:进程名、进程优先数、进程需要运行的时间、占用CPU的时间以及进程的状态等,且可按调度算法的不同而增删。(2)调度程序应包含2~3种不同的调度算法,运行时可任意选一种,以利于各种算法的分析比较。 (3)系统应能显示或打印各进程状态和参数的变化情况,便于观察诸进程的调度过程 2、实验内容 (1)编制和调试示例给出的进程调度程序,并使其投入运行。 (2)自行设计或改写一个进程调度程序,在相应机器上调试和运行该程序,其功能应该不亚于示例。 (3)直观地评测各种调度算法的性能。 3、算法设计 算法: (1) 优先数法。 进程就绪链按优先数大小从高到低排列,链首进程首先投入运行。每过一个时间片,运行进程所需运行的时间片数减1,说明它已运行了一个时间片,优先数也减3,理由是该进程如果在一个时间片中完成不了,优先级应该降低一级。接着比较现行进程和就绪链链首进程的优先数,如果仍是现行进程高或者相同,就让现行进程继续进行,否则,调度就绪链链首进程投入运行。原运行进程再按其优先数大小插入就绪链,且改变它们对应的进程状态,直至所有进程都运行完各自的时间片数。 (2) 简单轮转法。 进程就绪链按各进程进入的先后次序排列,进程每次占用处理机的轮转时间按其重要程度登入进程控制块中的轮转时间片数记录项(相当于优先数法的优先数记录项位置)。每过一个时间片,运行进程占用处理机的时间片数加1,然后比较占用处理机的时间片数是否与该进程的轮转时间片数相等,若相等说明已到达轮转时间,应将现运行进程排到就绪链末尾,调度链首进程占用处理机,且改变它们的进程状态,直至所有进程完成各自的时间片。 实验源代码: #include #include #include #include

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

实验一进程管理 1.实验目的: (1)加深对进程概念的理解,明确进程和程序的区别; (2)进一步认识并发执行的实质; (3)分析进程争用资源的现象,学习解决进程互斥的方法; (4)了解Linux系统中进程通信的基本原理。 2.实验预备内容 (1)阅读Linux的sched.h源码文件,加深对进程管理概念的理解; (2)阅读Linux的fork()源码文件,分析进程的创建过程。 3.实验内容 (1)进程的创建: 编写一段程序,使用系统调用fork() 创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示字符“a”,子进程分别显示字符“b”和“c”。试观察记录屏幕上的显示结果,并分析原因。 源代码如下: #include #include #include #include #include int main(int argc,char* argv[]) { pid_t pid1,pid2; pid1 = fork(); if(pid1<0){ fprintf(stderr,"childprocess1 failed"); exit(-1); } else if(pid1 == 0){ printf("b\n"); } 1/11

else{ pid2 = fork(); if(pid2<0){ fprintf(stderr,"childprocess1 failed"); exit(-1); } else if(pid2 == 0){ printf("c\n"); } else{ printf("a\n"); sleep(2); exit(0); } } return 0; } 结果如下: 分析原因: pid=fork(); 操作系统创建一个新的进程(子进程),并且在进程表中相应为它建立一个新的表项。新进程和原有进程的可执行程序是同一个程序;上下文和数据,绝大部分就是原进程(父进程)的拷贝,但它们是两个相互独立的进程!因此,这三个进程哪个先执行,哪个后执行,完全取决于操作系统的调度,没有固定的顺序。 (2)进程的控制 修改已经编写的程序,将每个进程输出一个字符改为每个进程输出一句话,再观察程序执行时屏幕上出现的现象,并分析原因。 将父进程的输出改为father process completed 2/11

客户关系管理系统的设计与实现

客户关系管理系统 系统分析报告 系(部):计算机学院 专业:计算机科学与技术 班级: 学生: 学号: 指导教师: 2013年12月 摘要

随着市场经济的深入发展,市场竞争、行业竞争越演越烈产品和服务的差异越来越小。以生产为中心、以销售产品为目的的市场战略逐渐被以客户为中心、以服务为目的的市场战略所取代。谁能掌握客户的需求趋势、加强与客户的关系、有效发掘和管理客户资源,谁就能获得市场竞争优势,在激烈的竞争中立于不败之地。企业、供应商、分销商及客户连成一片的价值链成为企业之间竞争的核心。为房地产企业开发一套客户关系管理系统(Customer Relationship Management:CRM)成为必然趋势。 该系统所面向的对象为房地产企业的管理和销售人员。整个系统从符合操作简便、界面友好、灵活、使用安全的要求出发,采用https://www.wendangku.net/doc/4c3509348.html,作为前台开发工具,SQL Server2005作为后台数据库平台,基于B/S的三层模式的客户关系管理系统。旨在实现利用数据库来存储、管理大量数据信息。设计并完成对其各种数据的分类、查询和统计,尽可能实现友好的操作界面。 房地产公司客户关系管理系统将大大提高客户满意度和忠诚度,工作效率,发掘客户价值,从而提高企业盈利。该系统将给房地产企业整个的信息化建设带来深远而有意义的影响。 关键词:CRM;客户关系管理;https://www.wendangku.net/doc/4c3509348.html,;数据库 绪论

1.1课题设计的目的和意义 使用CRM概念和技术,企业能快速搜集、追踪和分析每一个客户的信息,进而了解整个市场走势,并确切地知道谁是客户、什么是客户的需要、客户需要什么样的产品和服务、如何才能满足客户的要求,以及满足客户要求的一些重要限制因素。CRM还能观察和分析客户行为对企业收益的影响,使企业与客户的关系及企业盈利都得到最优化。因此为企业开发一套客户关系管理系统成为必然趋势。客户关系管理系统要提高管理的效率以及质量,完成对客户基本信息、联系人信息、交往信息、客户服务信息的充分共享和规范化管理;希望通过对销售机会、客户开发过程的追踪和记录,提高新客户的开发能力;希望在客户将要流失时系统及时预警,以便销售人员及时采取措施,降低损失。并希望系统提供相关报表,以便公司高层随时了解公司客户情况。最终实现房地产企业的盈利最大化。 1.2 课题主要的研究工作 本论文主要介绍客户关系管理系统的设计思路及实现方法,开发工具使用Microsoft Visual Studio 2005,数据库采用Microsoft SQL Server 2005,服务器采用IIS。在Windows XP平台上开发基于B/S模式的房地产客户关系管理系统。 该系统主要业务功能划分为以下几个功能模块:营销管理(包括销售机会的管理,客户开发计划的管理,订单信息管理)、客户管理(包括客户信息的管理和客户流失的管理)、服务管理(包括服务创建,服务分配,服务处理,服务反馈,服务归档的管理)、基础数据(包括数据字典管理,地产信息查询)共四个模块。该系统主要完成对客户基本信息、联系人信息、交往信息、客户服务信息的充分共享和规范化管理;通过对销售机会、客户开发过程的追踪和记录,提高新客户的开发能力;在客户将要流失时系统及时预警,以便销售人员及时采取措施,降低损失。 课题中涉及的关键技术 2.1 https://www.wendangku.net/doc/4c3509348.html,的简介 ASP即Active Server Pages的缩写,意为“活动服务器网页”。它是一种包含了使用VBScript或JavaScript脚本程序代码的网页。当浏览器浏览ASP网页时,Web服务器就会根据请求生成相应的HTML代码,然后再返回给浏览器。这样浏览器端看到的就是动态生成的网页。 如下图2.1所示为ASP的工作原理。用户给出已知的网页地址(URL),通过浏览器向远程服务器请求ASP页面。服务器接收请求并读取服务器上相应的ASP文件,并将该文件传递到服务器上的脚本引擎;脚本引擎解释ASP文件,并生成HTML页面,然后服务器将该HTML页面传回到用户的浏览器。浏览器解释并显示HTML页面,这个页面就是用户看到的网页。

山东大学操作系统实验报告4进程同步实验

山东大学操作系统实验报告4进程同步实验

计算机科学与技术学院实验报告 实验题目:实验四、进程同步实验学号: 日期:20120409 班级:计基地12 姓名: 实验目的: 加深对并发协作进程同步与互斥概念的理解,观察和体验并发进程同步与互斥 操作的效果,分析与研究经典进程同步与互斥问题的实际解决方案。了解 Linux 系统中 IPC 进程同步工具的用法,练习并发协作进程的同步与互斥操作的编程与调试技术。 实验内容: 抽烟者问题。假设一个系统中有三个抽烟者进程,每个抽烟者不断地卷烟并抽烟。抽烟者卷起并抽掉一颗烟需要有三种材料:烟草、纸和胶水。一个抽烟者有烟草,一个有纸,另一个有胶水。系统中还有两个供应者进程,它们无限地供应所有三种材料,但每次仅轮流提供三种材料中的两种。得到缺失的两种材料的抽烟者在卷起并抽掉一颗烟后会发信号通知供应者,让它继续提供另外的两种材料。这一过程重复进行。请用以上介绍的 IPC 同步机制编程,实现该问题要求的功能。 硬件环境: 处理器:Intel? Core?i3-2350M CPU @ 2.30GHz ×4 图形:Intel? Sandybridge Mobile x86/MMX/SSE2 内存:4G 操作系统:32位 磁盘:20.1 GB 软件环境: ubuntu13.04 实验步骤: (1)新建定义了producer和consumer共用的IPC函数原型和变量的ipc.h文件。

(2)新建ipc.c文件,编写producer和consumer 共用的IPC的具体相应函数。 (3)新建Producer文件,首先定义producer 的一些行为,利用系统调用,建立共享内存区域,设定其长度并获取共享内存的首地址。然后设定生产者互斥与同步的信号灯,并为他们设置相应的初值。当有生产者进程在运行而其他生产者请求时,相应的信号灯就会阻止他,当共享内存区域已满时,信号等也会提示生产者不能再往共享内存中放入内容。 (4)新建Consumer文件,定义consumer的一些行为,利用系统调用来创建共享内存区域,并设定他的长度并获取共享内存的首地址。然后设定消费者互斥与同步的信号灯,并为他们设置相应的初值。当有消费进程在运行而其他消费者请求时,相应的信号灯就会阻止它,当共享内存区域已空时,信号等也会提示生产者不能再从共享内存中取出相应的内容。 运行的消费者应该与相应的生产者对应起来,只有这样运行结果才会正确。

操作系统实验二

操作系统实验实验二进程管理 学号 1215108019 姓名克帆 学院信息学院 班级 12电子2

实验目的 1、理解进程的概念,明确进程和程序的区别。 2、理解并发执行的实质。 3、掌握进程的创建、睡眠、撤销等进程控制方法。 实验容与要求 基本要求:用C语言编写程序,模拟实现创建新的进程;查看运行进程;换出某个进程;杀死进程等功能。 实验报告容 1、进程、进程控制块等的基本原理。 进程是现代操作系统中的一个最基本也是最重要的概念,掌握这个概念对于理解操作系统实质,分析、设计操作系统都有其非常重要的意义。为了强调进程的并发性和动态性,可以给进程作如下定义:进程是可并发执行的程序在一个数据集合上的运行过程,是系统进行资源分配和调度的一个独立单位。 进程又就绪、执行、阻塞三种基本状态,三者的变迁图如下: 由于多个程序并发执行,各程序需要轮流使用CPU,当某程序不在CPU上运行时,必须保留其被中断的程序的现场,包括:断点地址、程序状态字、通用寄存器的容、堆栈容、程序当前状态、程序的大小、运行时间等信息,以便程序再次获得CPU时,能够正确执行。为了保存这些容,需要建立—个专用数据结构,我们称这个数据结构为进程控制块PCB (Process Control Block)。 进程控制块是进程存在的惟一标志,它跟踪程序执行的情况,表明了进程在当前时刻的状态以及与其它进程和资源的关系。当创建一个进程时,实际上就是为其建立一个进程控制块。 在通常的操作系统中,PCB应包含如下一些信息: ①进程标识信息。为了标识系统中的各个进程,每个进程必须有惟一的标识名或标 识数。 ②位置信息。指出进程的程序和数据部分在存或外存中的物理位置。 ③状态信息。指出进程当前所处的状态,作为进程调度、分配CPU的依据。 ④进程的优先级。一般根据进程的轻重缓急其它信息。 这里给出的只是一般操作系统中PCB所应具有的容,不同操作系统的PCB结构是不同的,我们将在2.8节介绍Linux系统的PCB结构。

数据库作业学生信息管理系统

数据库原理及应用 课程设计 《学生信息管理系统》 数据库设计报告 西安石油大学经济管理学院电子商务专业0701班

1.1作业背景------------------------------------------------------------------------------- 2 1.2小组分工----------------------------------------------------------------- ------------- 2 第一章需求分析数据流程图和数据字典----------------------------- 3 2.1需求调查------------------------------------------------------------------------------- 3 2.1.1调查对象基本情况---------------------------------------------------------------- - 3 2.1.2调查内容------------------------------------------------------------------------- - 3 2.1.3调查方法----------------------------------------------------------------------------- 3 2.1.4调查结果----------------------------------------------------------------------------- 3 2.2 需求分析------------------------------------------------------------------------------ 5 2.2.1数据字典----------------------------------------------------------------------------- 5 2.2.2数据流图----------------------------------------------------------------------------- 7 第二章概念结构设计----------------------------------------------------- 8 3.1学生模块----------------------------------------------------------------------------------------------- 8 3.1.1实体属性ER图---------------------------------------------------------------------- 8 3.1.2实体联系------------------------------------------------------------------------------ 9 3.2选课模块------------------------------------------------------------------------------------------------ 9 3.2.1实体属性ER图---------------------------------------------------------------------- 10 3.2.2实体联系------------------------------------------------------------------------------ 10 3.3考试模块------------------------------------------------------------------------------------------------ 10 3.3.1实体联系------------------------------------------------------------------------------ 10 3.3.2实体属性ER图---------------------------------------------------------------------- 11 3.4社团模块------------------------------------------------------------------------------------------------ 11 3. 4.1实体属性ER图---------------------------------------------------------------------- 11 3.4.2实体联系------------------------------------------------------------------------------ 12 3.5图书模块------------------------------------------------------------------------------------------------ 10 3. 5.1实体联系------------------------------------------------------------------------------ 10 3.5.2实体属性ER图---------------------------------------------------------------------- 11 3.6总ER图------------------------------------------------------------------------------------ 13第三章逻辑结构设计------------------------------------------------------------------- -------- 13 4.1学生模块----------------------------------------------------------------------------------- ----- ----- 13 4.2选课模块--------------------------------------------------------------------------------- ----- ---------13 4.3考试模块--------------------------------------------------------------------------------- ------ --------13 4.4社团模块--------------------------------------------------------------------------------- ---- --------14 4.5图书模块--------------------------------------------------------------------------------- ---- -----------14 第四章 SQL编程------------------------------------------------------------ ---------------------------- 15 5.1建立图书管理数据库------------------------------------------------------------------- -------------- 15 5.1.1建库-------------------------------------------------------------------------------------- -------------- 15 5.1.2建表-------------------------------------------------------------------------------------- -------------- 15 5.2查询语句-----------------------------------------------------------------------------------------------19 5.3数据操作语句------------------------------------------------------------------------------------- 23 结束语-------------------------------------------------------------------------------------------28

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