操作系统实验报告2

合集下载

操作系统实验实验报告

操作系统实验实验报告

操作系统实验实验报告一、实验目的操作系统是计算机系统中最为关键的核心软件,它管理着计算机的硬件资源和软件资源,为用户提供了一个方便、高效、稳定的工作环境。

本次操作系统实验的目的在于通过实际操作和实践,深入理解操作系统的基本原理和核心概念,掌握操作系统的基本功能和操作方法,提高对操作系统的认识和应用能力。

二、实验环境本次实验使用的操作系统为 Windows 10 专业版,开发工具为Visual Studio 2019,编程语言为 C 和 C++。

实验硬件环境为一台配备Intel Core i7 处理器、16GB 内存、512GB SSD 硬盘的个人计算机。

三、实验内容(一)进程管理实验1、进程创建与终止通过编程实现创建新的进程,并在完成任务后终止进程。

在实验中,我们使用了 Windows API 函数 CreateProcess 和 TerminateProcess 来完成进程的创建和终止操作。

通过观察进程的创建和终止过程,深入理解了进程的生命周期和状态转换。

2、进程同步与互斥为了实现进程之间的同步与互斥,我们使用了信号量、互斥量等同步对象。

通过编写多线程程序,模拟了多个进程对共享资源的访问,实现了对共享资源的互斥访问和同步操作。

在实验中,我们深刻体会到了进程同步与互斥的重要性,以及不正确的同步操作可能导致的死锁等问题。

(二)内存管理实验1、内存分配与释放使用 Windows API 函数 VirtualAlloc 和 VirtualFree 进行内存的分配和释放操作。

通过实验,了解了内存分配的不同方式(如堆分配、栈分配等)以及内存释放的时机和方法,掌握了内存管理的基本原理和操作技巧。

2、内存分页与分段通过编程模拟内存的分页和分段管理机制,了解了内存分页和分段的基本原理和实现方法。

在实验中,我们实现了简单的内存分页和分段算法,对内存的地址转换和页面置换等过程有了更深入的理解。

(三)文件系统实验1、文件操作使用 Windows API 函数 CreateFile、ReadFile、WriteFile 等进行文件的创建、读取和写入操作。

操作系统实验二实验报告

操作系统实验二实验报告

操作系统实验二实验报告一、实验目的本次操作系统实验二的主要目的是深入理解和掌握进程管理的相关概念和技术,包括进程的创建、执行、同步和通信。

通过实际编程和实验操作,提高对操作系统原理的认识,培养解决实际问题的能力。

二、实验环境本次实验使用的操作系统为 Windows 10,编程环境为 Visual Studio 2019。

三、实验内容及步骤(一)进程创建实验1、首先,创建一个新的 C++项目。

2、在项目中,使用 Windows API 函数`CreateProcess`来创建一个新的进程。

3、为新进程指定可执行文件的路径、命令行参数、进程属性等。

4、编写代码来等待新进程的结束,并获取其退出代码。

(二)进程同步实验1、设计一个生产者消费者问题的模型。

2、使用信号量来实现生产者和消费者进程之间的同步。

3、生产者进程不断生成数据并放入共享缓冲区,当缓冲区已满时等待。

4、消费者进程从共享缓冲区中取出数据进行处理,当缓冲区为空时等待。

(三)进程通信实验1、选择使用管道来实现进程之间的通信。

2、创建一个匿名管道,父进程和子进程分别读写管道的两端。

3、父进程向管道写入数据,子进程从管道读取数据并进行处理。

四、实验结果及分析(一)进程创建实验结果成功创建了新的进程,并能够获取到其退出代码。

通过观察进程的创建和执行过程,加深了对进程概念的理解。

(二)进程同步实验结果通过使用信号量,生产者和消费者进程能够正确地进行同步,避免了缓冲区的溢出和数据的丢失。

分析结果表明,信号量机制有效地解决了进程之间的资源竞争和协调问题。

(三)进程通信实验结果通过管道实现了父进程和子进程之间的数据通信。

数据能够准确地在进程之间传递,验证了管道通信的有效性。

五、遇到的问题及解决方法(一)在进程创建实验中,遇到了参数设置不正确导致进程创建失败的问题。

通过仔细查阅文档和调试,最终正确设置了参数,成功创建了进程。

(二)在进程同步实验中,出现了信号量使用不当导致死锁的情况。

操作系统实验二报告-时间片轮转进程调度算法1

操作系统实验二报告-时间片轮转进程调度算法1

操作系统实验报告实验二时间片轮转进程调度算法学号:班级:姓名:【实验题目】: 时间片轮转进程调度算法【实验目的】通过这次实验, 加深对进程概念的理解, 进一步掌握进程状态的转变、进程调度的策略与对系统性能的评价方法。

【实验内容】问题描述:设计程序模拟进程的时间片轮转RR 调度过程。

假设有n 个进程分别在T1, … ,Tn 时刻到达系统, 它们需要的服务时间分别为S1, … ,Sn 。

分别利用不同的时间片大小q, 采用时间片轮转RR 进程调度算法进行调度, 计算每个进程的完成时间, 周转时间和带权周转时间, 并且统计n 个进程的平均周转时间和平均带权周转时间。

程序要求如下:1)进程个数n ;每个进程的到达时间T 1, … ,T n 和服务时间S 1, … ,S n ;输入时间片大小q 。

2)要求时间片轮转法RR 调度进程运行, 计算每个进程的周转时间, 带权周转时间, 并且计算所有进程的平均周转时间, 带权平均周转时间;3)输出: 要求模拟整个调度过程, 输出每个时刻的进程运行状态, 如“时刻3: 进程B开始运行”等等;4)输出:要求输出计算出来的每个进程的周转时间, 带权周转时间, 所有进程的平均周转时间, 带权平均周转时间。

实现提示:用C++语言实现提示:1)程序中进程调度时间变量描述如下:int ArrivalTime[100];int ServiceTime[100];int PServiceTime[100];int FinishTime[100];int WholeTime[100];double WeightWholeTime[100];double AverageWT,AverageWWT;bool Finished[100];➢2)进程调度的实现过程如下:➢变量初始化;➢接收用户输入n, T1, … ,Tn, S1, … ,Sn;时间片大小q;➢按照时间片轮转RR算法进行进程调度, 计算进程的完成时间、周转时间和带权周转时间;➢计算所有进程的平均周转时间和平均带权周转时间;➢按格式输出调度结果。

操作系统实验报告实验二银行家算法

操作系统实验报告实验二银行家算法

江南大学理学院实验报告课程名称:计算机操作系统实验名称:银行家算法实验日期:2013.11.29 班级:信计1103 姓名:陈鹭学号:1301110301实验报告要求:1.实验目的 2.实验内容与要求 3.流程图与模块调用 4.实验分析5.运行情况6.实验体会1.实验目的死锁会引起计算机工作僵死,因此操作系统中必须防止。

本实验的目的在于让学生独立的使用高级语言编写和调试一个系统动态分配资源的简单模拟程序,了解死锁产生的条件和原因,并采用银行家算法有效地防止死锁的发生,以加深对课堂上所讲授的知识的理解。

2.实验内容与要求内容:银行家算法流程安全算法流程要求:设计有n个进程共享m个系统资源的系统,进程可动态的申请和释放资源,系统按各进程的申请动态的分配资源。

系统能显示各个进程申请和释放资源,以及系统动态分配资源的过程,便于用户观察和分析;3.流程图与模块调用数据结构1.可利用资源向量Available ,它是一个含有m个元素的数组,其中的每一个元素代表一类可利用的资源的数目,其初始值是系统中所配置的该类全部可用资源数目。

其数值随该类资源的分配和回收而动态地改变。

如果Available(j)=k,标是系统中现有Rj类资源k个。

2.最大需求矩阵Max,这是一个n×m的矩阵,它定义了系统中n个进程中的每一个进程对m类资源的最大需求。

如果Max(i,j)=k,表示进程i需要Rj类资源的最大数目为k。

3.分配矩阵Allocation,这是一个n×m的矩阵,它定义了系统中的每类资源当前一分配到每一个进程的资源数。

如果Allocation(i,j)=k,表示进程i当前已经分到Rj类资源的数目为k。

Allocation 表示进程i的分配向量,有矩阵Allocation的第i行构成。

i4.需求矩阵Need,这是一个n×m的矩阵,用以表示每个进程还需要的各类资源的数目。

如果Need (i,j)=k,表示进程i还需要Rj类资源k个,才能完成其任务。

大学计算机实验二实验报告

大学计算机实验二实验报告

3) 添加应用程序桌面图标。点击开始,在菜单中点击“所有应用”,找到需要添加的应用, 直接按住该应用并拖到桌面空白处即可
4) 删除桌面图标。在需要删除的桌面图标上单击鼠标右键,在弹出的菜单中选择删除即可
二. 文件管理 1.隐藏文件或文件夹及显示隐藏的文件或文件夹。 1)对着需要隐藏的文件单击右键,在弹出的快捷窗口中单击“属性”。 2)在“常规”选项下找到“属性”单击“隐藏”点击“确定”,选择“将更改应用于此文件夹 、子文件夹和文件”后,点击“确定”即可。
1) 打开“开始”菜单,输入“控制面板”命令打开控制面板,在控制面板内选择“日期和时
间”弹出的对话框内选择“日期和时间选项卡”,更改日期、时间、时区后点击确定即可达 到更改日期、时间、时区的目的。
2) 也可在控制面板内选择“Internet 时间选项卡”,在弹出的对话框内勾选与“Internet 时间服 务器”同步,并且在服务器的下拉列表框中选择第一个选项,点击确定即可
实验过程及内容: 一. 基础操作 1. 设置桌面背景 1) 在桌面的没有桌面图标的区域单击鼠标右键,并在出现的快捷菜单中单点击“个性化”。
2) 单击“背景”。打开“背景”后,可以看见个性化设置背景。
3) 在下方的“最近使用的图像”中任意单击一张图片即可将桌面背景设置为此图片。
注:也可在第三步中点击“浏览照片”并选择自己喜欢的图片做为桌面背景。 2. 调整计算机系统的日期和时间
3. 设置桌面图标 1) 添加文件或文件夹图标。鼠标右键点击需要添加快捷方式的文件,选择“显示更多选项”, 在弹出的菜单中选择“发送到”,在弹出的新菜单中点击“桌面快捷方式”即可。 2) 添加系统图标。在设置中找到“个性化”选修卡,点击“主题”选项,点击“桌面图标设 置”在弹出的对话框内勾选需要的桌面图标点击确定即可完成设置。

操作系统实验2-计算机操作系统(第3版)-郁红英-清华大学出版社

操作系统实验2-计算机操作系统(第3版)-郁红英-清华大学出版社

操作系统实验
(课程设计)实验报告
学院
专业
班级/学号
学生姓名
成绩
实验地点_
实验日期___ __
指导教师_____ ___ _____
(课程上机)实验报告
1.实验名称、实验目的、实验内容、实验要求由教师确定,实验前由教师事先填好,然后作为实验报告模版供学生使用;
2.实验准备由学生在实验或上机之前填写,教师应该在实验前检查;
3.实验过程由学生记录实验的过程,包括操作过程、遇到哪些问题以及如何解决等;
4.实验总结由学生在实验后填写,总结本次实验的收获、未解决的问题以及体会和建议等;
5.源程序、代码、具体语句等,若表格空间不足时可作为附录另外附页。

操作系统原理实验2-Linux操作系统命令接口

操作系统原理实验2-Linux操作系统命令接口

《操作系统原理》实验报告
实验序号:2 实验项目名称:Linux操作系统命令接口
挑战3:历史命令
挑战4:数据提取
四、实验结果与数据处理
1.查看用户
2.检查权限
3.创建文件
4.创建目录
5.复制文件
6.删除文件
7.预声明变量
8.变量赋值
9.查看变量
10.查找文件
11.打包文件
12.解压文件
13.检查磁盘
14.查看ls命令的帮助信息
15.进入文件添加任务
16.顺序执行多条命令
17.打印全部文件
18.使用管道一行一行查看
19.打印某个字段的某一行
20.默认字典排序
21.删除"hello shiyanlou" 中所有的'o','l','h'
22.将"hello" 中的ll,去重为一个l
23.将输入文本,全部转换为大写或小写输出
24.数据流重定向
25.进程 = 可执行程序 + 该进程对应的内核数据结构
26.linux操作系统基本概念:操作系统按用户数量可以分为单用户系统和多用户系统。

比如Windows就是典型的单用户系统,Linux就是典型的多用户系统。

多用户系统就是一台能并发和独立地执行分别属于两个和多个用户的若干应用程序的计算机。

27.显示环境变量
28.列出指定用户的所有进程
29显示所有进程
30.将在后台运行的作业放到前台运行
31.访问日志
32.历史命令
33.寻找文件,提取数据见上
五、分析与讨论
上机的命令有很多,要重复操作,才能熟练掌握
六、教师评语成绩。

操作系统第二次实验报告——Linux创建进程及可执行文件结构分析

操作系统第二次实验报告——Linux创建进程及可执行文件结构分析

操作系统第⼆次实验报告——Linux创建进程及可执⾏⽂件结构分析0 个⼈信息张樱姿201821121038计算18121 实验⽬的熟练Linux创建进程fork操作。

2 实验内容在服务器上⽤VIM编写⼀个程序:⼀个进程创建两个⼦进程。

查看进程树查看进程相关信息3 实验报告 3.1编写程序创建两个⼦进程1 #include<sys/types.h>2 #include<stdio.h>3 #include<unistd.h>45int main(){6 pid_t cpid1 = fork(); //创建⼦进程178if(cpid1<0){9 printf("fork cd1 failed\n");10 }11else if(cpid1==0){12 printf("Child1:pid: %d, ppid: %d\n",getpid(),getppid());13 }14else{15 pid_t cpid2 = fork(); //创建⼦进程216if(cpid2<0){17 printf("fork cd2 failed\n");18 }19else if(cpid2==0){20 printf("Child2:pid: %d, ppid: %d\n",getpid(),getppid());21 }22else{23 printf("Parent: pid :%d\n",getpid());24 }25 }26 }编译运⾏后的结果:3.2打印进程树 添加sleep函数以挂起进程,⽅便打印进程树:1 #include<sys/types.h>2 #include<stdio.h>3 #include<unistd.h>45int main(){6 pid_t cpid1 = fork();78if(cpid1<0){9 printf("fork cd1 failed\n");10 }11else if(cpid1==0){12 printf("Child1:pid: %d, ppid: %d\n",getpid(),getppid());13 sleep(30); //挂起30秒14 }15else{16 pid_t cpid2 = fork();17if(cpid2<0){18 printf("fork cd2 failed\n");19 }20else if(cpid2==0){21 printf("Child2:pid: %d, ppid: %d\n",getpid(),getppid());22 sleep(30); //挂起30秒23 }24else{25 printf("Parent: pid :%d\n",getpid());26 sleep(60); //挂起60秒27 }28 }29 }pstree -p pid #打印进程树 3.3 解读进程相关信息 3.3.1 解释执⾏ps -ef后返回结果中每个字段的含义 ps -ef输出格式 :UID PID PPID C STIME TTY TIME CMDUID: User ID,⽤户ID。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《操作系统》实验报告(二)
Linux用户管理命令的使用(验证性、2学时)
一、实验目的
1、掌握linux的桌面环境。

2、掌握用户管理命令的使用。

二、实验内容
1、启动进入linux系统
2、用户的管理
●创建一个新用户user01,设置其主目录为/home/user01:#adduser user01
●查看/etc/passwd文件的最后一行,看看是如何记录的。

tail /etc/passwd
●查看文件/etc/shadow文件的最后一行,看看是如何记录的。

●给用户user01设置密码:#passwd user01。

●再次查看文件/etc/shadow文件的最后一行,看看有什么变化。

●使用user01用户登录系统,看能否登录成功。

●更改用户user01的帐户名为user03:#usermod –l user03 user01。

●查看/etc/passwd文件的最后一行,看看有什么变化。

删除用户user02。

userdel.
3、掌握文件操作简单命令,完成以下操作:
在/root內建立3个目录, 请命名为“homework”,“dd1”和“dd2”(勿打入引号)请在homework下利用vi编辑器,随意编写1个文件, 文件名任意。

4、退出linux系统
操作步骤:
在主菜单上选择“注销”->关闭计算机。

三、实验结果与讨论(根据实验结果回答下列问题)
1、Vi 有哪3种工作模式?分别按什么键切换?
Vi有三种基本的工作模式:命令模式、文本编辑模式、最后行模式。

(1)命令模式下输入“a”、“ i”进入文本编辑模式。

(2)文本编辑模式下按ESC进入命令模式。

(3)命令模式下输入“:”进入最后行模式。

(4)最后行模式下自动返回命令模式。

2、用户有哪几种类型?
管理员或管理员组、系统用户、软件创建用户。

四、个人体会
(你对本次实验有什么体会或看法?)
通过本次实验,我更加深入的了解了linux这个软件,linux系统不同于windows系统,图形界面功能不是很强大,但是它的运行速度及响应时间快于windows,而且性能稳定。

本次试验,初步接触了linux系统。

对其命令行的操作方式初步了解。

深刻感触到我现在对鼠标的依赖。

比如U盘的加载与卸载,以前windows系统下只是点一点鼠标就能解决。

可是linux系统下需要自己敲命令代码,否则寸步难行。

对于命令行方式的了解相信会给我将来学习铺好路,因为以后接触的东西一定会那些没有现成结果的,需要自己动手创建的。

我还是不能熟练的应用linux系统调用,还不能靠自己的能力写出实验内容程序。

总之,本次试验我受益匪浅,拓展了不同的操作系统方面的知识。

相信这只是起步,将来我会在这个基础上进一步发展。

相关文档
最新文档