Advertisement

华南理工大学计算机全英班的操作系统实验

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:None


简介:
本课程为华南理工大学计算机全英班专设,旨在通过全英文环境下的操作系统实验教学,强化学生对操作系统原理的理解与实践能力。 ### Session 1 **目标:** 熟悉Windows环境下进程与线程的创建。 **要求:** - **子任务1:** 创建一个名为“child”的控制台应用程序,在循环中每秒打印一次 “The child is talking at [系统时间]”。 - **子任务2:** 创建另一个控制台应用“parent”,它会生成并执行“child”进程。同时,“parent”自身也会每隔一秒打印一条消息:“The parent is talking at [系统时间]”。运行“parent”程序,并解释你看到的输出。 - **子任务3:** 编写一个名为winPS的应用,该应用可以显示所有正在运行的进程的信息(例如PID、可执行文件名和路径等)。 - **子任务4:** 在“mainThread”程序中使用“CreateThread”创建一个子线程。主线程与子线程都应每隔一秒打印一条消息:“[线程ID] + [系统时间]”。 ### Session 2 **目标:** 在Windows上实现类似Linux/Unix的ps和kill命令。 **要求:** - **子任务1:** Linux/Unix操作系统中存在“ps”(显示所有运行进程信息)和“kill”(终止进程)两个命令。基于Session 1的任务,创建可以在Windows环境中使用的“ps”和“kill”命令。“kill”的实现可以使用TerminateProcess函数。 ### Session 3 **目标:** 学习如何通过信号量解决IPC问题。 **要求:** - **任务3.1:** 使用信号量来解决理发店的排队等待问题。 - **任务3.2:** 利用信号量处理读写者优先级的问题,其中读者(和作者)具有更高的优先级。 ### Session 4 标题: 升级Linux/Unix命令 **问题:** 编写一个名为“supershell”的程序,该程序接受另一个命令作为参数并执行它。例如,“./supershell cat /usr/greg/readme”将调用cat命令来操作文件/usr/greg/readme。在指定的命令执行完毕后,“supershell”应显示一些系统资源使用的统计信息。

全部评论 (0)

还没有任何评论哟~
客服
客服
  • 优质
    本课程为华南理工大学计算机全英班专设,旨在通过全英文环境下的操作系统实验教学,强化学生对操作系统原理的理解与实践能力。 ### Session 1 **目标:** 熟悉Windows环境下进程与线程的创建。 **要求:** - **子任务1:** 创建一个名为“child”的控制台应用程序,在循环中每秒打印一次 “The child is talking at [系统时间]”。 - **子任务2:** 创建另一个控制台应用“parent”,它会生成并执行“child”进程。同时,“parent”自身也会每隔一秒打印一条消息:“The parent is talking at [系统时间]”。运行“parent”程序,并解释你看到的输出。 - **子任务3:** 编写一个名为winPS的应用,该应用可以显示所有正在运行的进程的信息(例如PID、可执行文件名和路径等)。 - **子任务4:** 在“mainThread”程序中使用“CreateThread”创建一个子线程。主线程与子线程都应每隔一秒打印一条消息:“[线程ID] + [系统时间]”。 ### Session 2 **目标:** 在Windows上实现类似Linux/Unix的ps和kill命令。 **要求:** - **子任务1:** Linux/Unix操作系统中存在“ps”(显示所有运行进程信息)和“kill”(终止进程)两个命令。基于Session 1的任务,创建可以在Windows环境中使用的“ps”和“kill”命令。“kill”的实现可以使用TerminateProcess函数。 ### Session 3 **目标:** 学习如何通过信号量解决IPC问题。 **要求:** - **任务3.1:** 使用信号量来解决理发店的排队等待问题。 - **任务3.2:** 利用信号量处理读写者优先级的问题,其中读者(和作者)具有更高的优先级。 ### Session 4 标题: 升级Linux/Unix命令 **问题:** 编写一个名为“supershell”的程序,该程序接受另一个命令作为参数并执行它。例如,“./supershell cat /usr/greg/readme”将调用cat命令来操作文件/usr/greg/readme。在指定的命令执行完毕后,“supershell”应显示一些系统资源使用的统计信息。
  • 法设
    优质
    本课程为华南理工大学计算机全英班开设,专注于培养学生的算法设计与分析能力。通过实践项目和编程实验,学生能够深入理解并应用各种经典及现代算法解决实际问题。 ### 实验1 快速排序算法 #### 1. 引言:快速排序算法介绍 为了对输入数据序列S进行排序,可以按照以下步骤操作: - 首先选择一个数q,并将序列S划分为三个子序列:所有元素小于q的子序列S1;所有元素等于q的子序列S2;以及所有元素大于q的子序列S3; - 然后对S1和S3分别使用相同的算法进行递归排序。 #### 2. 实验目的 (1)学习各种排序算法。 (2)理解快速排序与其他排序算法,如插入排序、直接选择排序等之间的区别。 (3)利用高级语言在计算机上模拟这些算法。 (4)用不同的排序方法解决一些实际的排序问题。 #### 3. 实验内容摘要 使用QuickSort算法对由random()函数生成的含有n个元素的数组S进行排序。将结果与插入排序、直接选择等其他排序算法的结果相比较,理解它们之间的差异,并了解在解决问题时如何选择更好的排序方法。 #### 4. 实验要求 (1)程序模板应适用于所有数据类型,如整型、实数和双精度浮点数等。 (2)采用面向对象编程(OOP)的方法编写代码; (3)将结果与其他算法的结果进行比较,并绘制图表以显示它们之间的差异。 #### 5. 示例C++代码 ```cpp void myquicksort(int* A, int l,int r){ if(l>=r) return ; int i=l,j=r; int temp; //用于分割A成S1,S2和S3 //在此处将S分为S1,S2和S3 myquicksort(A,l,i-1); //递归调用左侧部分 myquicksort(A,i+1,r); //递归调用右侧部分 } ``` ### 实验2 背包问题的贪心算法求解 #### 引言:贪心算法介绍 (1)假设一个问题可以通过一系列决策来解决。 (2)每次选择局部最优的选择,这些局部最优的选择最终会累积成全局最优解决方案。 #### 2. 实验目的 (1)了解背包问题和0/1背包问题; (2)学习什么是贪婪选择策略以及如何使用它解决问题; (3)掌握用贪心算法解决一些优化问题的方法; (4)将贪心算法与如树搜索等其他方法进行比较。 #### 3. 实验内容 给定一个容量为M的背包和一系列具有重量和收益的商品,尝试使用贪婪法和搜索树法来解决问题。然后将其结果与其他解决方案(例如0/1背包问题)基于相同容量的结果进行对比。 - 给出实例: - M = 30, - (P1, P2, P3, P4, P5, P6) = (25, 24, 15, 18, 22, 35) - (W1, W2, W3, W4, W5, W6) = (12,15,10,8,9,11) #### 实验要求 (1)程序模板应适用于所有数据类型。 (2)采用面向对象编程的方法编写代码; (3)使用贪婪方法和搜索树法解决问题,并比较结果。 ### 实验3 Prim算法求最小生成树 #### 引言:Prim算法介绍 - 定义: - G = (V, E) 是一个加权的连通无向图 - 生成树是 S = (V, T),T ⊆ E,即无向树。 - 最小生成树(MST)是指具有最小总权重的生成树。 - Prim算法步骤: 1. x ∈ V, 让 A = {x}, B = V - {x}. 2. 从A和B间选择边(u,v)∈E使得其权值最轻。 3. 将 (u, v) 加入到树中。更新集合:A = A ∪{v},B = B - {v} 4. 如果B为空,则停止;否则转至步骤2。 #### 2. 实验目的 (1)理解最小生成树(MST); (2)学习求解MST的算法,如Prim和Kruskal等; (3)比较这些不同算法之间的差异。 ### 实验4 树搜索算法 #### 引言:树搜索算法介绍 许多问题可以通过树的形式来表示其解决方案,并通过遍历此树找到该问题的答案。 2. 实验目的 (1)理解树搜索方法。 (2)了解某些
  • 二__西科技_
    优质
    本课程为《计算机操作系统》系列实验之二,由西南科技大学开设。旨在通过实践加深学生对操作系统的理解与掌握,涵盖进程管理、内存分配等核心概念。 计算机操作系统实验 西南科技大学 实验2
  • :读写者问题
    优质
    本课程为华南理工大学操作系统教学的一部分,专注于探讨和实践经典的“读写者”问题,通过编程实验加深学生对并发控制机制的理解。 教材对读者写者问题的算法有详细的描述,但在持续有大量的读操作的情况下,可能会导致写操作被阻塞。请编写一个优先处理写者的解决方案来解决这一问题,其中包含多个进程作为读者和多个进程作为写者,并使用信号量来进行同步与互斥控制。
  • 图形
    优质
    本实验为华南理工大学计算机科学与技术专业课程的一部分,旨在通过实践操作深化学生对计算机图形学理论的理解。参与者将学习并应用图形渲染、建模及动画制作等技能,增强其在计算机视觉和游戏开发领域的竞争力。 一、1. 请下载并安装glut库。 2. 使用以下代码编写一个完整的程序来绘制Sierpinski垫片: ```c++ void myinit(){ // 属性设置 glClearColor(1.0,1.0,1.0,1.0); glColor3f(1.0,0.0,0.0); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluOrtho2D(0.0, 50.0, 0.0, 50.0); glMatrixMode(GL_MODELVIEW);}void display(){ GLfloat vertices[3][3] = {{0.0, 0.0, 0.0}, {25.0, 50.0, 0.0}, {50.0, 0.0, 0.0}}; // 在平面z= 0上的任意三角形 GLfloat p[3] = {7.5, 5.0, 0.0}; int j,k; glBegin(GL_POINTS); for (k = 0; k < 5000; k++){ // 随机选择一个顶点 j = rand()%3; p[0] = (p[0]+vertices[j][0])/2; p[1] = (p[1]+vertices[j][1])/2; glVertex3fv(p); } glEnd(); glFlush();} #include void main(int argc, char **argv){ glutInit(&argc;, argv); glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB); glutInitWindowSize(500, 500); glutCreateWindow(Simple OpenGL Example); glutDisplayFunc(display); myinit(); glutMainLoop();} 3. 实现DDA和Bresenham画线算法: (1)生成并绘制超过十万条随机直线,比较两种算法的平均时间。 (2)分别将屏幕上的1*1、5*5, 9*9像素视为直线段上的一点,观察线条失真情况。 二、编写一个OpenGL或WebGL程序完成以下任务: (1)读取三维网格模型的obj文件; (2)使用OpenGL函数glTranslatef()平移模型使其重心位于原点; (3)利用glLookAt()设置视点,并绕着物体旋转一圈,以便从各个侧面观察透视投影效果; (4)真实感绘制:用OpenGL函数设置光源和材质,在计算每个三角形的法向量后使用glNormal给待渲染的三角形设定法线。 三、本实验为综合性任务,请利用光线追踪算法进行Whitted全局光照处理,并对读入场景进行真实感渲染。 (1)参加对象: 课程所有学生,3-5人一组共同完成; 非三年级同学在组队时遇到困难可以与老师沟通。 (2)提交内容: a.源代码;可执行文件;三维数据模型; b.实验报告; c.ppt展示绘制结果的视频。 (3)功能需求: a.实现光线追踪算法,用Whitted光照模型渲染场景; (可选)通过亚像素采样消除模糊效果。 b.材质:支持环境光、漫反射、高光和透射等光学现象; (可选) 支持纹理绘制以获得额外分数。 c.光源:至少有一个点光源,支持阴影投射; (可选)增加更多点光源可以获得更多加分。 d.场景:支持圆体及三角网格模型; (可选) 增加椭球、参数曲面等形状可以获得额外加分。 e.输入输出:读取网格文件,并保存渲染图像为位图格式,大小可通过参数调整; (可选) 从mtl材质库中读入材质信息。 f.加速:使用空间划分(八叉树或BSP)进行优化处理。
  • 报告.pdf
    优质
    这份《南京工业大学计算机操作系统实验报告》涵盖了学生在课程中完成的各项操作系统的实践内容,包括进程管理、内存分配及文件系统等关键技术的学习与应用。文档记录了理论知识的实际运用和动手能力的培养过程。 南京工业大学的计算机操作系统实验课程提供了学生实践操作系统的理论知识的机会。通过这些实验,学生们可以更好地理解操作系统的内部工作原理,并且能够提升他们的编程技能和技术能力。
  • 课程设
    优质
    简介:华南理工大学的操作系统课程设计是一门结合理论与实践的教学项目,旨在培养学生深入理解操作系统原理及其应用开发技能。通过该项目,学生能够掌握进程管理、内存分配等关键技术,并进行实际操作练习,为日后的软件开发和研究奠定坚实基础。 设计任务:模拟Linux文件系统在任一操作系统下运行。 1. 在现有机器硬盘上划分出100MB的空间作为虚拟磁盘。 2. 编写一个名为simdisk的管理程序,对上述空间进行操作以实现简单的Linux文件系统的功能。具体要求如下: - 盘块大小为1KB - 使用位图法来管理空闲盘块 - 文件系统结构包括超级块、i结点区和根目录区 3. simdisk管理程序需要具备以下功能: - info:显示整个系统的相关信息,文件支持用户读写保护。 - 目录名与文件名允许使用全路径或相对路径表示,各分量之间以“/”隔开。
  • 815考研
    优质
    本简介为准备报考华东理工大学计算机专业操作系统(代码815)科目研究生考试的学生提供复习指导、资料推荐及经验分享等信息,助力考生顺利备考。 华东理工大学计算机815操作系统考研。
  • 中科技代码
    优质
    本项目为华中科技大学计算机专业操作系统课程配套实验代码集合,包含进程管理、内存分配及文件系统等模块,旨在帮助学生加深对操作系统的理解与实践。 华中科技大学计算机学院的操作系统实验源码共有4次。
  • 2021年西GeekOS套文件
    优质
    本资源包含2021年西北工业大学计算机学院开设的计算机操作系统课程中关于GeekOS实验的所有文档和材料。 西工大计算机学院的计算机操作系统Geekos实验全部项目文件可以直接复制到虚拟机中,并通过bochs -f bochsrc运行,也可以编译后直接运行。这些资料包括第十一章测试代码以及第十二章页表地址输出的相关内容。