操作系统实验报告 学号 姓名 班级 实验一实验报告 【实验名称】:并发程序设计(实验1) 【实验目的】:掌握在程序中创建新进程的方法, 观察并理解多道程序并发执行的现象。 【实验原理】:fork():建立子进程。子进程得到父进程地址空间的一个复制。 返回值:成功时,该函数被调用一次,但返回两次,fork()对子进程返回 0,对父进程返回子进程标识符(非0值)。不成功时对父进程返回- 1,没有子进程。 【实验内容】:首先分析一下程序运行时其输出结果有哪几种可能性,然后实际调试该 程序观察其实际输出情况,比较两者的差异,分析其中的原因。 void main (void) { int x=5; if( fork( ) ) { x+=30; printf ("%d\n",x); } else printf("%d\n",x); printf(("%d\n",x); } 【实验要求】:每个同学必须独立完成本实验、提交实验报告、源程序和可执行程序。 实验报告中必须包含预计的实验结果,关键代码的分析,调试记录,实际 的实验结果,实验结果分析等内容。 【预计的实验结果】 35 5 35 5 【关键代码
2022-06-22 13:04:38 547KB 文档资料
的四个实验报告文档全在这儿了,可供分享.
2022-06-20 20:48:02 589KB UNIX 实验报告 操作系统
1
操作系统实验报告-附思考题.doc
2022-06-20 09:00:16 1.55MB 互联网
一个能够完整运行出来的PV操作的实验报告,然后实验报告的结构也很完整,实验目的,实验过程,甚至实验的结果也有截图,如果有小伙伴需要,尽管下载哦
2022-06-16 11:00:55 1.68MB 操作系统 实验报告
1
实验一 Linux命令接口 实验二 观察Linux进程状态 在本实验中学习Linux操作系统的进程状态,并通过编写一些简单代码来观察各种情况下,Linux进程的状态,进一步理解进程的状态及其转换机制。 实验三 观察Linux进程/线程的异步并发执行 通过本实验学习如何创建Linux进程及线程,通过实验,观察Linux进程及线程的异步执行。理解进程及线程的区别及特性,进一步理解进程是资源分配单位,线程是独立调度单位。 实验四 使用信号量进行互斥与同步 本实验介绍在Linux中使用信号量进行进程同步、互斥的方法。读者可以通过实验进一步理解进程间同步与互斥、临界区与临界资源的概念与含义,并学会Linux信号量的基本使用方法。 实验五 进程同步问题实现 利用实验四提供的方法和例子,解决进程同步相关问题,例如:生产者消费者问题,哲学家进餐等问题。 实验六 作业调度算法模拟 (1)掌握周转时间、等待时间、平均周转时间等概念及其计算方法。 (2)理解五种常用的进程调度算法,区分算法之间的差异性,并用C语言模拟实现各算法。 实验七 动态分区分配方式的模拟
2022-06-14 21:45:51 1.56MB linux 运维 服务器 C
1
操作系统C语言 作业调度/进程调度/银行家算法/并行程序设计/页式置换算法/磁盘调度算法
2022-06-11 16:00:33 1.04MB 操作系统
1
unix操作系统实验报告.doc
2022-06-09 17:03:08 905KB unix
实验一: 用pipe()创建一个管道文件,然后用fork()创建两个生产进程和两个消费进程,它们之间通过pipe()传递信息。 用clone()创建四个轻进程(线程),用参数指明共享内存等资源,通过共享内存模拟生产消费问题,利用pthread_mutex_lock(), pthread_mutex_unlock()等函数实现对共享存储区访问的互斥。 实验二: 实时任务用task数据结构描述,设计四个函数:select_proc()用于实现调度算法,被选中任务执行proc(),在没有可执行任务时执行idle(),主函数mian()初始化相关数据,创建实时任务并对任务进行调度。 为模拟调度算法,给每个线程设置一个等待锁,暂不运行的任务等待在相应的锁变量上。主线程按调度算法唤醒一个子线程,被选中线程执行一个时间单位,然后将控制权交给主线程判断是否需要重新调度。
2022-06-06 09:02:01 147KB 综合资源
这是吉林大学计算机思维与操作系统是关于操作系统部分的实验报告,希望大家能好好利用。 实验主要内容:实验四 进程间通信实验 一、实验目的 掌握操作系统进程间通信技术。 二、实验内容 1、Unix下进程创建实验,理解exec命令对进程控制块的操作。 示例代码: #include #include int main() { pid_t pid; /* fork a child process */ pid = fork(); if (pid < 0) { /* error occurred */ fprintf(stderr, "Fork Failed"); return 1; } else if (pid == 0) { /* child process */ execlp("/bin/ls","ls",NULL); } else { /* parent process */ /* parent will wait for the child to complete */ wait(NULL); printf("Child Complete");
2022-05-30 19:00:45 377KB 文档资料
Linux命令执行结果,执行中遇到的简单问题
2022-05-28 20:00:37 9.17MB linux 文档资料 运维 服务器
1