操作系统实验报告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。

操作系统实验报告(2)

操作系统实验报告(2)

计算机实验报告(2)操作系统部分一、基本要求和内容1.了解操作系统的基本功能.2.认识WINDOWS桌面的各部分组成,掌握基本的桌面操作.3.掌握各种基本操作对象的操作方法.4.学会使用WINDOWS帮助.5.了解基本的DOS命令和基本的命令行操作方法.6.熟练掌握文件操作方法.7.掌握对图标的操作方法(移动/拖曳/单击/双击/右击等等).8.熟悉资源管理器窗口和”我的电脑”(“计算机”)窗口.9.掌握启动控制面板的方法,了解控制面板的主要功能,掌握使用控制面板对软硬件进行设置的方法。

10.掌握“运行”对话框的使用方法。

11.了解“任务管理器”的简单使用方法。

12.熟悉“画图”“记事本”“计算器”“写字板”等常用应用程序。

13.开始POWERPOINT的基本使用.二、通过上机实验解决下列问题1. CTRL+ALT+DEL 组合键的功能是:打开【任务管理器】窗口2.全角和半角的区别是:半角是一个字符,全角是两个字符3. CTRL+A组合键的功能是:全部选中CTRL+C组合键的功能是:复制CTRL+V组合键的功能是:粘贴CTRL+X组合键的功能是:剪切CTRL+Z组合键的功能是: 撤销ALT+PRINTSCREEN组合键的功能是:复制当前窗口、对话框或其他对象到剪贴板中任务栏隐藏时通过什么组合键可以看到任务栏:Ctrl+Alt+Del进行窗口切换的组合键是:ALT+Tab4.“画图”应用程序默认保存文件类型是:*.png“记事本”应用程序默认保存文件类型是: *.txt.DOC是什么文件类型Word文档.EXE是什么文件类型可执行文件(程序文件)5.鼠标的基本操作方法包括:指向、单击、双击和拖动鼠标指针附近有漏沙钟表示当前的状态是: 沙漏是等待,因为程序先是从硬盘上读取,然后再到内存,芯片在其期间进行运算,再没真正的打开程序时,系统认为它没正真的启动6.资源管理器左下角窗格(即”文件夹”窗口)显示的是:系统中的所有资源以分层树型的结构显示出来7.一般情况下,对文件进行重命名时,不应该修改文件的扩展名,因为: 如果修改了后缀名则会导致文件属性更改,文件无法打开8.文件的属性主要包括哪些:“只读”、“存档”、“隐藏”9.选择多个连续的文件可以采用哪些方法:使用鼠标先选定第一个文件或文件夹,然后按住Shift键,用鼠标单击最后一个文件或文件夹,这样在第一个对象和最后一个对象之间的所有文件或文件夹将全部被选中,包括第一个和最后一个文件或文件夹。

操作系统实验2

操作系统实验2

操作系统实验2操作系统实验报告哈尔滨工程大学软件学院一、实验概述1. 实验名称实验环境的使用2. 实验目的熟悉操作系统集成实验环境OS Lab的基本使用方法。

练习编译、调试EOS操作系统内核以及EOS应用程序。

3. 实验类型验证二、实验环境OS Lab三、实验过程新建:调试:使用Bochs作为远程目标机:调试:调试软盘引导扇区程序:查看boot.lst文件:查看最后指令字节码调试加载程序:调试内核:EOS启动后的状态和行为:ID是31的是应用程序的进程,ID31的是系统进程。

应用程序的优先级是8,而系统进程的优先级是24,应用程序的进程数是1,而系统进程的进程数是10,并且应用程序是有名字的,而系统程序没有名字。

Id是33的是应用程序的主线程,它与系统线程主要的区别就是优先级不同。

四、思考题1、为什么EOS操作系统从软盘启动时要使用boot.bin和loader.bin两个程序?使用一个可以吗?它们各自的主要功能是什么?如果将loader.bin的功能移动到boot.bin文件中,则boot.bin文件的大小是否仍然能保持小于512字节?答:在IDE环境启动执行EOS操作系统的时候,会把boot.bin、loader.bin和kernel.dll三个二进制文件写到软盘镜像文件中,然后让虚拟机来执行软盘里的EOS操作系统。

仅使用其中的一个是不能运行的。

Boot.bin程序的功能是:在Boot.bin程序执行的过程中,CPU始终处于实模式状态。

Boot.bin程序利用BIOS提供的int 0x13中断服务程序读取软盘FAT12文件系统的根目录,在根目录中搜寻loader.bin文件。

Loader.bin程序的功能是:Loader.bin程序的任务和Boot.bin程序很相似,同样是将其它的程序加载到物理内存中,但这次加载的是EOS内核。

除此之外,Loader.bin程序还负责检测内存大小,为内核准备保护模式执行环境等工作。

《操作系统》课程实验报告

《操作系统》课程实验报告

《操作系统》课程实验报告一、实验目的本次《操作系统》课程实验的主要目的是通过实际操作和观察,深入理解操作系统的工作原理、进程管理、内存管理、文件系统等核心概念,并掌握相关的操作技能和分析方法。

二、实验环境1、操作系统:Windows 10 专业版2、开发工具:Visual Studio Code3、编程语言:C/C++三、实验内容(一)进程管理实验1、进程创建与终止通过编程实现创建新进程,并观察进程的创建过程和资源分配情况。

同时,实现进程的正常终止和异常终止,并分析其对系统的影响。

2、进程同步与互斥使用信号量、互斥锁等机制实现进程之间的同步与互斥。

通过模拟多个进程对共享资源的访问,观察并解决可能出现的竞争条件和死锁问题。

(二)内存管理实验1、内存分配与回收实现不同的内存分配算法,如首次适应算法、最佳适应算法和最坏适应算法。

观察在不同的内存请求序列下,内存的分配和回收情况,并分析算法的性能和优缺点。

2、虚拟内存管理研究虚拟内存的工作原理,通过设置页面大小、页表结构等参数,观察页面的换入换出过程,以及对系统性能的影响。

(三)文件系统实验1、文件操作实现文件的创建、打开、读取、写入、关闭等基本操作。

观察文件在磁盘上的存储方式和文件系统的目录结构。

2、文件系统性能优化研究文件系统的缓存机制、磁盘调度算法等,通过对大量文件的读写操作,评估不同优化策略对文件系统性能的提升效果。

四、实验步骤(一)进程管理实验步骤1、进程创建与终止(1)使用 C/C++语言编写程序,调用系统函数创建新进程。

(2)在子进程中执行特定的任务,父进程等待子进程结束,并获取子进程的返回值。

(3)通过设置异常情况,模拟子进程的异常终止,观察父进程的处理方式。

2、进程同步与互斥(1)定义共享资源和相关的信号量或互斥锁。

(2)创建多个进程,模拟对共享资源的并发访问。

(3)在访问共享资源的关键代码段使用同步机制,确保进程之间的正确协作。

(4)观察并分析在不同的并发情况下,系统的运行结果和资源竞争情况。

《操作系统》实验二

《操作系统》实验二

《操作系统》实验二一、实验目的本实验旨在加深对操作系统基本概念和原理的理解,通过实际操作,提高对操作系统设计和实现的认知。

通过实验二,我们将重点掌握进程管理、线程调度、内存管理和文件系统的基本原理和实现方法。

二、实验内容1、进程管理a.实现进程创建、撤销、阻塞、唤醒等基本操作。

b.设计一个简单的进程调度算法,如轮转法或优先级调度法。

c.实现进程间的通信机制,如共享内存或消息队列。

2、线程调度a.实现线程的创建、撤销和调度。

b.实现一个简单的线程调度算法,如协同多任务(cooperative multitasking)。

3、内存管理a.设计一个简单的分页内存管理系统。

b.实现内存的分配和回收。

c.实现一个简单的内存保护机制。

4、文件系统a.设计一个简单的文件系统,包括文件的创建、读取、写入和删除。

b.实现文件的存储和检索。

c.实现文件的备份和恢复。

三、实验步骤1、进程管理a.首先,设计一个进程类,包含进程的基本属性(如进程ID、状态、优先级等)和操作方法(如创建、撤销、阻塞、唤醒等)。

b.然后,实现一个进程调度器,根据不同的调度算法对进程进行调度。

可以使用模拟的方法,不需要真实的硬件环境。

c.最后,实现进程间的通信机制,可以通过模拟共享内存或消息队列来实现。

2、线程调度a.首先,设计一个线程类,包含线程的基本属性(如线程ID、状态等)和操作方法(如创建、撤销等)。

b.然后,实现一个线程调度器,根据不同的调度算法对线程进行调度。

同样可以使用模拟的方法。

3、内存管理a.首先,设计一个内存页框类,包含页框的基本属性(如页框号、状态等)和操作方法(如分配、回收等)。

b.然后,实现一个内存管理器,根据不同的内存保护机制对内存进行保护。

可以使用模拟的方法。

4、文件系统a.首先,设计一个文件类,包含文件的基本属性(如文件名、大小等)和操作方法(如创建、读取、写入、删除等)。

b.然后,实现一个文件系统管理器,包括文件的存储和检索功能。

南昌大学操作系统实验报告材料二编程模拟进程间地同步和互斥

南昌大学操作系统实验报告材料二编程模拟进程间地同步和互斥

南昌大学实验报告---(2)编程模拟进程间的同步和互斥学生姓名:张皓然学号: 5501215001 专业班级:本硕151 实验类型:□验证□综合■设计□创新实验日期: 2017.5.5 实验成绩:一、实验目的通过实验加强对进程同步和互斥的理解,并掌握进程(线程)的创建和调用方法。

学会使用信号量解决资源共享问题。

学生可以自己选择在Windows或Linux系统下编写。

二、实验内容(一)以下为Linux系统下参考程序,请编译、运行并观察程序的输出,并分析实验结果,写出实验报告。

#include<stdio.h>//标准输入输出头文件#include<stdlib.h>//standard library标准库头文件#include<unistd.h>//POSIX标准定义的unix类系统定义符号常量的头文件,包含了许多UNIX系统服务的函数原型,例如read函数、write函数和getpid函数。

#include<time.h>//time.h是C标准库头文件,主要是一些和时间相关的函数#include<sys/types.h>//基本系统数据类型#include<sys/wait.h>//declarations for waiting#include<linux/sem.h>//Semaphore operation flags#define NUM_PROCS 5//5个子进程#define SEM_ID 250//信号量#define FILE_NAME "/tmp/sem_aaa"#define DELAY 4000000void update_file(int sem_set_id, char *file_path, int number){struct sembuf sem_op;FILE *file;//建立一个文件指针//等待信号量的数值变为非负数,此处设为负值,相当于对信号量进行P操作sem_op.sem_num=0;sem_op.sem_op=-1;sem_op.sem_flg=0;semop(sem_set_id,&sem_op,1);/*操作一组信号,进程的标识符号为sem_set_id,sem_op是结构指针。

操作系统实验

操作系统实验

操作系统实验报告(一)Linux基本操作与编程(验证性 2学时)1、实验目(de):1)熟悉Linux操作系统(de)环境和使用.2)了解LINUX系统(de)安装过程.(注:表示可选择)3)掌握Linux环境下(de)命令操作.2、实验内容:(1)完成LINUX系统(de)登录,启动终端.进行下列操作并记录结果(要求:结果以屏幕截图表示).1)运行pwd命令,确定你当前(de)工作目录.2)利用以下命令显示当前工作目录(de)内容: ls –l3)运行以下命令: ls –al4)使用mkdir命令建立一个子目录subdir.5)使用cd命令,将工作目录改到根目录(/)上.6)使用ls-l命令列出/dev(de)内容.7)使用不带参数(de)命令cd改变目录,然后用pwd命令确定你当前(de)工作目录是哪里8)使用命令cd ../..,你将工作目录移到什么地方(2)在LINUX下查看你(de)文件.1)利用cd命令,将工作目录改到你(de)主目录上.2)将工作目录改到你(de)子目录subdir,然后运行命令: date > file1 将当前日期和时间存放到新建文件file1中.3)使用cat命令查看file1文件(de)内容.4)利用man命令显示date命令(de)用法: man date5)将date命令(de)用法附加到文件file1(de)后面:man date >> file16)利用cat命令显示文件file1(de)内容.7)利用ls -l file1命令列出文件file1(de)较详细(de)信息.运行ls -l/bin 命令显示目录(de)内容.8)利用ls -l/bin|more命令行分屏显示/bin目录(de)内容.9)利用cp file1 fa命令生成文件file1(de)副本.然后利用ls -l命令查看工作目录(de)内容.10)用cd命令返回你(de)主目录,输入命令ls –l后,解释屏幕显示(de)第一列内容(de)含义.(3)编写能输出“Hello world”问候语(de)C程序,并在终端中编译、执行.要求记录所使用(de)命令及结果.操作步骤:1)在文本编辑器中,编写C程序如下:include ""main(){ printf("hello"); }2) 在终端中,用gcc命令进行编译,生成可执行文件a.gcc –o a3) 在终端中执行a (de)命令如下:./a(4)编写一个程序:显示信息“Time for Play”,并能在后台运行一段时间(自定义)后,弹出信息提醒用户.要求记录所使用(de)命令及结果.(提示:使用sleep(s)函数)3、实验结果分析:(对上述实验内容中(de)各题结果,进行分析讨论.并回答下列问题)(1)进程包括哪些特征间断性, 失去封闭性, 不可再现性, 动态性, 并发性, 独立性(2)在Linux中,如何设置前、后台命令和程序(de)执行命令后直接加 & ,这个命令就在后台执行;正在运行(de)命令,使用Ctrl+z ,就挂起; jobs命令,可以现实后台,包括挂起(de)命令;使用 bg %作业号就可以把挂起(de)命令在后台执行;使用 fg %作业号就可以把后台命令调到前台(3)你所使用(de)Linux系统(de)内核版本是多少用什么命令查看内核版本目前你所了解(de)各发行版本(de)情况如何Linux version (gcc version (Red Hat (GCC) ) 1 SMP Tue Jan 2911:48:01 EST 2013(4)你对Linux系统有什么认识linux是一款开放性(de)操作系统,也可以说成是开放(de)源代码系统,这些代码可以完全自由(de)修改可以再任何(de)计算机上去运行它,也就是“可移植性”,其次大家都知道,linux是由UNIX(de)概念所开发出来(de),所以它也继承了UNIX(de)稳定和效率(de)特点4、总结:你对本次实验有什么体会或看法.操作系统实验报告(二)文件访问权限设置与输入输出重定向(2学时)一、实验目(de)1、掌握linux(de)文件访问权限设置.2、熟悉输入输出重定向和管道操作.二、实验内容1、启动进入红帽linux系统2、设置文件权限:在用户主目录下创建目录test,进入test目录,用vi 创建文件file1,并输入任意(de)文字内容.用ls -l显示文件信息,注意文件(de)权限和所属用户和组.对文件file1设置权限,使其他用户可以对此文件进行写操作:chmod o+w file1.用ls -l查看设置结果.取消同组用户对此文件(de)读取权限:chmod g-r file1.查看设置结果.用数字形式来为文件file1设置权限,所有者可读、可写、可执行;其他用户和所属组用户只有读和执行(de)权限:chmod 755 file1.设置完成后查看设置结果.3、输入、输出重定向和管道(1) 输出重定向用ls命令显示当前目录中(de)文件列表:ls –l.使用输出重定向,把ls命令在终端上显示(de)当前目录中(de)文件列表重定向到文件list中:ls –l > list.查看文件list中(de)内容,注意在列表中会多出一个文件list,其长度为0. 这说明shell是首先创建了一个空文件,然后再运行ls命令:cat list.再次使用输出重定向,把ls命令在终端上显示(de)当前目录中(de)文件列表重定向到文件list中.这次使用追加符号>>进行重定向:ls –l >> list.查看文件list(de)内容,可以看到用>>进行重定向是把新(de)输出内容附加在文件(de)末尾,注意其中两行list文件(de)信息中文件大小(de)区别:cat list.重复命令ls –l > list.再次查看文件list中(de)内容,和前两次(de)结果相比较,注意list文件大小和创建时间(de)区别.(2) 管道who |grep root命令(de)结果是命令ls –l |wc –l结果是4、退出linux系统操作步骤:在主菜单上选择“注销” ->关闭计算机.三、实验结果与讨论(根据实验结果回答下列问题)1. 文件(de)权限如下:-rw-r—r-- 1 root root 19274 Jul 14 11:00回答:-rw-r—r-- (de)含义是什么答:是LINUX/FTP(de)简易权限表示法:对应于本用户-所在组-其他人(de)权限,每一个用执行(x)-读取(r)-写入(w)如本题若是说自己可以读取写入不可以执行,所在组和其他人只能读取.2、文件(de)所有者添加执行权限(de)命令是答:chmod u+x 、赋予所有用户读和写文件权限(de)命令是四、答:chmod a+w,a+r 个人体会(你对本次实验有什么体会或看法)操作系统实验报告(三)文件和目录管理一、实验目(de)1) 掌握在Linux系统下(de)文件和文件系统(de)概念及命令;2) 掌握Linux系统下(de)目录操作.二、实验内容1. 进入linux终端后,用命令(de)操作结果回答下列问题:1)vi(de)三种工作模式是其中不能进行直接转换(de)是什么模式到什么模式命令模式、文本输入模式、末行模式命令模式不能直接到末行模式2)在vi中退出时,保存并退出(de)操作步骤是Ese:wq3)用vi 创建myfile1文件,并在其中输入任意文字一行,创建myfile2文件,任意输入文字3行.请问执行命令:cat <myfile1 >myfile2 后,myfile2中还有几行内容该命令(de)作用是用命令操作验证你(de)回答.myfile2中还有1行内容该命令(de)作用是替换myfile(de)内容4)请用至少两种不同(de)命令创建一个文本文件(),在其中写入“我是2014级学生,我正在使用Linux系统.”,记录命令及执行结果.1、Vi创建2、5)用___pwd________命令可查看所创建文件(de)绝对路径,写出它(de)绝对路径__/root_________;用___ls -l________命令查看该文件(de)类型及访问权限,其访问权限(数字和字母)分别是多少__-rw- r- - r- - 6 4 4______________.6)若将该文件(de)访问权限修改为:所有者有读写权限;其他用户只读;同组用户可读写,请写出命令,并记录结果.7)查找my开头(de)所有文件,可___find my_________命令,写出命令并记录结果8)在/home下创建子目录user,并在其中创建2个文件,名为file1和file2,file1(de)内容是/root目录(de)详细信息;file2(de)内容任意,最后将这两个文件合并为file3文件,请先写出命令序列,并在终端中验证,记录结果.2. 文件及目录操作,写出操作所使用(de)命令,并记录结果.在终端中完成下列命令操作,并记录结果在root用户主目录下创建一个mydir子目录和一个myfile文件,再在mydir下建立d1和d2两个子目录.查看mydir和myfile(de)默认权限查看当前myfile和mydir(de)权限值是多少将myfile文件分别复制到root 和dd1(de)主目录中将root主目录中(de)myfile改为yourfile通过从键盘产生一个新文件并输入I am a student查找文件是否包含student字符串三、实验结果与分析,回答下列问题:1、能够创建文件(de)命令有哪些vi 和cat>name2、能够查看当前目录(de)绝对路径(de)命令是pwd3、Linux中按用户属性将用户分成哪些类型根据文件(de)访问权限,用户又被分成哪些类型能够查看文件访问权限(de)命令是用户同组其他可读可写可执行 cat f1四、小结(本次实验(de)体会或小结)操作系统实验报告(四)作业调度算法模拟(验证性2学时)1、实验目(de):1)掌握作业调度(de)主要功能及算法.2)通过模拟作业调度算法(de)设计加深对作业管理基本原理(de)理解.3)熟悉Linux环境下应用程序(de)编程方法.2、实验内容:(1)作业调度算法(FCFS)编程模拟:编制一段程序,对所输入(de)若干作业,输入、输出数据样例如下表所示.按FCFS算法模拟调度,观察、记录并分析调度(de)输出结果情况.输入输出样例1:FCFS算法include <>include <>define SIZE 5struct Job_type{char no[2]; o,&job[i].tb,&job[i].tr);printf("输入作业顺序:\n");for(i=0;i<SIZE;i++)printf("\t%s\t%d\t%d\n",job[i].no,job[i].tb,job[i].tr);}void fcfs(){ int i,j,t=0,tw=0,tt=0;for(i=0;i<SIZE-1;i++)for(j=i+1;j<SIZE;j++)if(job[i].tb>job[j].tb){x=job[i];job[i]=job[j];job[j]=x;}printf("FCFS调度结果:\n");printf("开始时间作业号到达时间运行时间完成时间等待时间周转时间\n");for(i=0;i<SIZE;i++){printf(" %d",t);t=t+job[i].tr;tw=t-job[i].tb-job[i].tr; b; o,job[i].tb,job[i].tr,t,tw,tt);}}void main(){load();fcfs();}(2)作业调度算法(SJF)编程模拟:编程实现由短作业优先算法,分别用下面两组输入、输出数据样例进行模拟,观察分析运行结果.输入输出样例2:SJF算法输入输出A 0 4B 0 3C 0 5D 0 2E 0 1A 0 6 10 10B 0 3 6 6C 0 10 15 15D 0 1 3 3E 0 0 1 1include <>include <>define SIZE 5struct Job_type{char no[2]; o,&job[i].tb,&job[i].tr);printf("输入作业顺序:\n");for(i=0;i<SIZE;i++)printf("\t%s\t%d\t%d\n",job[i].no,job[i].tb,job[i].tr);}void sjf()n=i; pl[i].pfn=ERR;}for(i=1;i<total;i++){ pfc[i-1].next=&pfc[i];pfc[i-1].pfn=i-1;}pfc[total-1].next=NULL;pfc[total-1].pfn=total-1;freepf_head=&pfc[0];}void FIFO(int total){ int i,j;pfc_type p,t;initialize(total);busypf_head=busypf_tail=NULL;for(i=0;i<page_len;i++){if(pl[page[i]].pfn==ERR){ diseffect+=1;if(freepf_head==NULL){p=busypf_head->next;pl[busypf_head->pn].pfn=ERR; freepf_head=busypf_head;freepf_head->next=NULL;busypf_head=p;}p=freepf_head->next;freepf_head->next=NULL;freepf_head->pn=page[i];pl[page[i]].pfn=freepf_head->pfn;if(busypf_tail==NULL)busypf_head=busypf_tail=freepf_head; else{ busypf_tail->next=freepf_head;busypf_tail=freepf_head;}freepf_head=p;}}printf("FIFO:%d",diseffect);}main(){ int i; int k;printf(“请输入页(de)引用序列:\n”); for(k=0;k<page_len;k++)scanf("%d",&page[k]);for(i=4;i<=7;i++){printf("%2d page frames ",i);FIFO(i);}参考程序LRU算法,略三、实验结果分析:(对上述实验各题所使用(de)原始数据、调试数据与状态(包括出错)及最终结果进行记录并分析.)随着块数(de)增加,缺页数目也减少,4个实验中3个实验(de)块数增加到了5以后,即使块数再增加,缺页数目也是保持不变.只有实验4,块数增加到7以后,缺页数目又再次减少了四、总结:你对本次实验有什么体会或看法.。

《操作系统》实验报告(2)

《操作系统》实验报告(2)
b.将f02.txt的读权限去掉(修改权限的命令是chmod),___chmod -r f02.txt____;看看还能否用cat打开该文件;不能查看,权限不够
c.将subdir目录的读权限去掉,看看是否能用ls命令看到其中内容?
权限不够
(三)Shell程序设计
1.上机编辑、执行实验内容中的例1~例6过程,写出每个脚本(例1~例5)的功能和执行结果;
然后把t01.txt复制一个新文件t03.txt,catt01.txt>t02.txt;
用cat命令将f01.txt的内容追加到t01.txt的末尾,catf01.txt>> t01.txt;
再用diff命令比较t01.txt,t02.txt和t03.txt,比较t01.txt,t02.txt:diff t01.txt t02.txt,结果是否相同:__相同___;比较t01.txt,t03.txt:diff t01.txt t03.txt,结果是否相同:不相同;比较t02.txt,t03.txt:diff t02.txt t03.txt,结果是否相同:不相同。出现上述结果的原因是:______________________________________________________________________________。
2.修改例5,使脚本中不出现break循环控制语句;
3.编写一个Shell过程完成如下功能:
a.合并两个$1、$2文件为$3,并显示内容。
b.如果缺少$3,那么先报告缺少$3,将合并后的内容输出到totaltext.txt,并显示内容。
c.如果缺少$2、$3那么先报告缺少$2、$3,只显示$1的内容。
b.用ln命令给t03.txt建立一个符号链接t04.txt,ln–st03.txt t04.txt;用cat命令看看t04.txt,___cat t04.txt_____;然后删去t03.txt,___rm t03.txt____;再用cat命令看看t04.txt,___cat t04.txt___;结果是:___t04.txt为空____

重庆大学操作系统实验二

重庆大学操作系统实验二

重庆大学学生实验报告实验课程名称操作系统原理开课实验室重庆大学DS1501学院软件工程年级2013 专业班学生姓名学号开课时间2015 至2016 学年第一学期重庆大学软件学院制操作系统原理》实验报告实验目的(软件需求文档)掌握线程的创建掌握线程的调度静态优先级调度动态优先级调度二、实验原理(软件设计文档)系统调用接口,线程相关函数:Step1:定义线程函数voidtsk_foo(void *pv) {n“ , task_getid());task_exit(0);}Step2:申请用户栈unsigned char *stack_foo;stack_foo = (unsigned char *)malloc(1024*1024);free 释放掉!线程退出后,才能把用户栈用Step3:创建线程int tid_foo;tid_foo = task_create(stack_foo+1024*1024, tsk_foo, (void *)0);三、使用仪器、材料(软硬件开发环境) Notepad++ expenv四、实验步骤(实现的过程)随机生成3 组非负整数列表,创建3 个线程,分别用3 种不同的排序算法(插入,冒泡,选择) 对列表进行排序三线程:void tsk_foo_line1(void * pv){int m;int i;int arry[50]; srand(time(NULL));for (i =0; i<50; i++){ m= random() % 200; if (m<0) { m=0- m;} draw(i * 10, 0, 0 + m); arry[i] = m;}sort_m(arry, 50, 0); task_exit(0);}void tsk_foo_line2(void * pv){int m;int i;int arry[50];srand(time(NULL));for (i =0; i<50; i++){m= random() % 200;if (m<0) { m=0- m;} draw(i * 10, 345, 345 +m); arry[i] = m;}sort_x(arry, 50, 345); task_exit(0);}void tsk_foo_line3(void * pv){int m;int i;int arry[50];srand(time(NULL));for (i =0; i<50; i++){ m= random() % 200; if (m<0) { m=0- m;} draw(i * 10, 690, 690 +m); arry[i] = m;}sort_c(arry , 50, 690);task exit(0);}void draw(int x, int y1, int y2){int i;for (i =y1; i<y2; i++)setPixel(i , x, RGB(255, 255, 255)); }void resetBK(int x, int y1, int y2){ int i;for (i =y1; i<y2; i++) setPixel(i , x, RGB(0, 0, 0));} 三排序:冒泡void sort_m(int * arry, int n,int l){int i, j, tem ; int t = 500 / n;for (i =0; i<n; i++)for (j=0;j<n-i- 1; j++){if (*( arry + j)>*(arry +j +1)){ resetBK(j* t, l, l + *(arry +j)); resetBK(j* t +t, l, l +*( arry + j + 1)); tem = *( arry + j);*( arry + j) = *(arry +j+1); *( arry + j + 1) = tem ; draw (j * t , l, l + *( arry +j)); draw(j*t +t,l,l + *( arry + j+ 1));}}void sort_c(int * arry, int n, int l){ int i, j, key;int t =500/ n;for (j=n- 2; j >= 0; j--){ key = *( arry +j);i =j +1; resetBK(j * t , l, l+key); while (i<n&& *( arry + i )<key){ *( arry +i -1) = *( arry +i); draw(i*t -t,l,l+*(arry+i- 1)); i =i +1;}*( arry +i - 1) = key; draw(i* t -t, l, l + key);}} 选择void sort_x(int* arry, int n, int l){int i=0, j=0, lowindex = 0;int t =500/ n;for (i =0; i<n; i ++){lowindex =i;for (j =n -1; j>i; j--) if (arry[j] < arry[lowindex ])lowindex = j;if (lowindex != i){resetBK(i*t , l, l + *(arry +i)); resetBK(lowindex* t, l,l + *(arry + lowindex )); int temp = arry[ i];arry [i] = arry[ lowindex];arry [lowindex ] = temp ; draw (i * t , l, l + *( arry +i));draw(lowindex* t, l, l + *(arry + lowindex ));}}}线程控制块tcb 中增加nice 属性,在函数sys_task_create 中初始化nice=0 /*系统调用getpriority 的执行函数获取当前线程的优先级*/int sys_getpriority (int tid){if (tid ==0) return g_task_running->nice+NZERO;// 获取当前线程的nice值uint32_t flags; struct tcb *tsk;save flags cli(flags);tsk = get_task(tid ); restore_flags(flags);return tsk->nice+NZERO; // 获取线程的nice 值}/* 系统调用setpriority 的执行函数调整当前线程的优先级线程控制块tcb 中增加estcpu 属性,在函数sys_task_create 中初始化estcpu=0; 增加priority 属性,在函数sys_task_create 中初始化priority=0; 中增加全局变量g_load_avg:表示系统的平均负荷用浮点(float-point) 表示g_load_avg 和estcpu:精度高,效率低动态调度schedule:void schedule(){struct tcb * select=g_task_head;struct tcb * my_select=g_task_running ; while (select != NULL){select->priority =127- fixedpt_toint (fixedpt_div(select->estcpu, fixedpt_fromint (4))) - select->nice * 2; // 计算所有线程的priorityselect = select->next ;}// 动态优先级select = g_task_head; while(select!=NULL){if((select->tid != 0) &&(select->state ==TASK STATE READ))Y{if(my_select->priority <select->priority )my_select=select;// 选择等待队列里的线程优先级高的elseif(my select->tid==0){my_select=select;} select=select->next;}if (my select==g task running) { if(my_select->state == TASK_STATE_READ) Y return ;my_select = task0;}printk ("0x%d -> 0x%d\r\n" , (g_task_running == NULL) -1: g_task_running->tid , select->tid);g_resched = 0;switch_to (my_select);}中添加如下g_task_running->estcpu=fixedpt_add(g_task_running->estcpu,FIXEDPT_ON)E;//计算线程使用CPU时间estcpuif(g timer ticks %HZ==0){// 每隔一秒计算一次int nready=0; // 表示处于就绪状态的线程个数struct tcb *my select=g task head;int nice;//g task running->nice;//my_select=g_task_head;fixedpt ratio ;while(my select!=NULL){if (my select->state==TASK STATE REA)DnYready++ nice=my select->nice;ratio = fixedpt_mul (FIXEDPT_TWO, g_load_avg);// 每秒钟为所有线程运行、就绪和等待)更新一次ratio = fixedpt_div (ratio , fixedpt_add (ratio , FIXEDPT_ON)E);my_select->estcpu = fixedpt_add (fixedpt_mul (ratio ,my_select->estcpu),fixedpt_fromint (nice))my_select=my_select->next;fixedpt r59 60 = fixedpt div (fixedpt fromint (59), fixedpt fromint (60));// 计算系统的平均负荷g load avgfixedpt r01 60 = fixedpt div (FIXEDPT ON,Efixedpt fromint (60)) g load avg= fixedpt add (fixedpt mul (r59 60, g load avg),fixedpt_mul (r01_60, fixedpt_fromint (nready)));主函数:int mode = 0x0118;initGraphics (mode);int y =0;for (y=0;y<; y++){setPixel/ 3,y, RGB(0, 125, 125)); setPixel/ 3 * 2, y, RGB(0, 125, 125));}五、实验结果及分析(实现的效果,包括屏幕截图、系统总体运行情况和测试情况等)静态优先级:Llxh心必ew动态优先级:。

Windows操作系统实验二实验报告

Windows操作系统实验二实验报告

Windows操作系统C/C++ 程序实验姓名:_____王晨璐_____学号:____1131000046____班级:____1班_____院系:___信息工程学院_____2015__年_10_月_26_日实验二Windows 2000/xp进程控制一、背景知识二、实验目的三、工具/准备工作四、实验内容与步骤请回答:Windows所创建的每个进程都是以调用CreateProcess()API函数开始和以调用TerminateProcess()或ExitProcess() API函数终止。

1. 创建进程步骤5:编译完成后,单击“Build”菜单中的“Build 2-1.exe”命令,建立2-1.exe可执行文件。

操作能否正常进行?如果不行,则可能的原因是什么?可以正常运行。

清单2-1展示的是一个简单的使用CreateProcess() API函数的例子。

首先形成简单的命令行,提供当前的EXE文件的指定文件名和代表生成克隆进程的号码。

大多数参数都可取缺省值,但是创建标志参数使用了:CREATE_NEW_CONSOLE标志,指示新进程分配它自己的控制台,这使得运行示例程序时,在任务栏上产生许多活动标记。

然后该克隆进程的创建方法关闭传递过来的句柄并返回main() 函数。

在关闭程序之前,每一进程的执行主线程暂停一下,以便让用户看到其中的至少一个窗口。

CreateProcess() 函数有10个核心参数?本实验程序中设置的各个参数的值是:a. LPCSTR lpApplivetionName szFllenameb. LPCSTR lpCommandLine szCmdLinec. LPSECURITY_ATTRIBUTES lpProcessAttributes NULLd. LPSECURITY_ATTRIBUTES lpThreadAttributes NULLe.BOOL bInherithandle Falsef. DWORD dwCreationFlage CREATE_NEW_CONSOLEg. LPVOID ipEnvironment NULLh. LPCTSTR lpCurrentDirectory NULLI. STARTUPINFO lp startupinfo &siJ. LPPROCESS_INFORMATION lpProcessInformation &pi 程序运行时屏幕显示的信息是:提示:部分程序在Visual C++环境完成编译、链接之后,还可以在Windows 2000/xp的“命令提示符”状态下尝试执行该程序,看看与在可视化界面下运行的结果有没有不同?为什么?界面是一样的2. 正在运行的进程步骤10:编译完成后,单击“Build”菜单中的“Build 2-2.exe”命令,建立2-2.exe可执行文件。

Linux 实验报告(二)文件和目录管理

Linux 实验报告(二)文件和目录管理

Linux操作系统报告单名称:__________ 文件和目录管理________ 任课教师: __ ___ _专业:__计算机科学与技术班级: _ _ 姓名: _ 学号:完成日期:_ _ 成绩: ___ ___执行命令 cp bak.d/p*.c7. 创建目录 dir5,此目录下创建文件 a 和 b 和 e 和 f和目录a.d p1.c bak.d p2.c和目录b.d。

执行命令mv a c 和 mv b e f a.d 和 mv a.d b.d8. 跳转到 dir5 的上层目录,执行命令 rm –ir dir59. 创建目录 dir6 和文件 a.c 和文件 b.c 和文件 e.c,执行命令 rm -i和 who>-i 和rm –i,然后执行命令 rm * 和 cat * 和 ls *和rm -- -i10. 跳转到 dir6 的上层目录,复制 dir6 目录到/tmp11. 修改/tmp 下的 dir6 目录下 a.c 文件内容,以增量拷贝的方式,复制 dir6 目录到/tmp,查看/tmp 下的 dir6 目录下 a.c 文件内容。

12. 找出所有/usr/include 下的.c 文件和.h 文件13. 找出所有/usr/include 下的.c 文件和.h 文件,并查找文本“extern”, 分屏显示。

14. 查找出/tmp 下所有的目录文件和 socket 文件15. 查找出/tmp 下所有 3 天内没有访问的文件和 3 天内修改过的普通文件16. 查找出/tmp 下所有大于 100c 的普通文件三、实验步骤:四、实验结果:1.查看操作系统的根目录下,有哪些目录2.文件操作(1)查看文件(可以是二进制的)内容 cat执行格式:cat filename 或 more filename 或 cat filename|more 例: cat file1 以连续显示方式,查看文件 file1 的内容或 cat file1|more 以分页方式查看文件的内容(2)删除文件 rm执行格式:rm filename例: rm file?rm f* 删除以f开头的一般文件(3)复制文件 cp执行格式: cp [­r] source destination例:cp file1 file2 将 file1 复制成 file2cp file1 dir1 将file1复制到目录 dir1cp /dir1/file1 . 将file1复制到当前目录cp /tmp/file1 file2 将file1复制到当前目录名为 file2 cp –r dir1 dir2 (recursive copy)复制整个目录(4)移动或更改文件、目录名称 mv执行格式: mv source destination例:mv file1 file2 将文件 file1,更名为 file2mv file1 dir1 将文件 file1,移到目录 dir1 下mv dir1 dir2 将文件 dir1,移到目录 dir2 下(5)比较文件(可以是二进制的)或目录的内容 diff执行格式: diff [­r] name1 name2 (name1、name2 同为目录)文件或例:diff file1 file2 比较 file1 与 file2 的不同处diff –r dir1 dir2 dir1 与 dir2 的不同处(6)文件中字符串的查找 grep执行格式:grep string file1例:grep abc file1 查找并列出串 abc 所在的整行文字3、系统询问与权限口令(1)查看系统中的使用者执行格式: who(2)查看 username执行格式: who am I 查看自己的 username(3)改变自己的 username 的帐号与口令 su执行格式: su username例:su username 输入账号Password 输入密码(4)文件属性的设置 chmod执行格式: chmod [­R] mode name其中:[-R]为递归处理,将指定目录下所有文件及子目录一并处理 mode 为 3-8 位数字,是文件/目录读、写、执行允许权的缩写(r:read,数字代号为"4", w:write,数字代号为"2", x:execute,数字代号为"1")mode: rwx rwx rwxuser group other缩写:(u)(g)(o)例:chmod 755 dir1 将将目录 dir1 设定成任何人皆有读取及执行的权利,但只有拥有者可作写修改。

最新操作系统实验报告实验二

最新操作系统实验报告实验二

最新操作系统实验报告实验二实验目的:1. 熟悉最新操作系统的架构和特性。

2. 掌握操作系统的基本操作和配置方法。

3. 分析操作系统的性能和稳定性。

实验环境:- 硬件环境:Intel Core i7处理器,16GB RAM,256GB SSD。

- 软件环境:最新操作系统版本X.Y.Z,图形界面和命令行界面。

实验步骤:1. 安装最新操作系统X.Y.Z,记录安装过程中的关键步骤和遇到的问题。

2. 配置系统环境,包括网络设置、显示设置、用户账户管理等。

3. 测试文件系统的性能,包括文件的创建、复制、删除和搜索操作。

4. 测试多任务处理能力,通过同时运行多个应用程序来观察系统响应时间和资源分配情况。

5. 检验系统的安全性,包括用户权限管理、防火墙设置和病毒防护功能。

6. 评估系统的稳定性,进行长时间运行测试,记录是否有崩溃或异常行为发生。

7. 对系统进行基准测试,使用专业工具如SPEC CPU测试套件来评估系统性能。

实验结果:1. 安装过程中,系统顺利识别硬件并完成驱动安装,未遇到兼容性问题。

2. 系统配置简便,图形用户界面直观易用,网络配置通过向导快速完成。

3. 文件系统测试显示,读写速度达到预期标准,搜索操作响应迅速。

4. 多任务处理测试中,系统在开启多个资源密集型应用时仍保持流畅,未出现明显延迟。

5. 安全性测试表明,用户权限分级明确,防火墙和病毒防护均能有效工作。

6. 稳定性测试中,系统连续运行72小时无故障,表现出良好的稳定性。

7. 基准测试结果显示,系统性能较前一版本有显著提升,特别是在多线程处理方面。

实验结论:最新操作系统X.Y.Z在本次实验中表现出了良好的性能和稳定性。

系统的用户界面友好,配置和管理方便。

文件系统和多任务处理能力均达到预期目标,安全性和稳定性也符合最新的操作系统标准。

推荐对性能和稳定性有较高要求的用户进行升级。

windows操作系统实验报告

windows操作系统实验报告

windows操作系统实验报告1. 实验目的本实验旨在通过对Windows操作系统的实际操作,了解和掌握Windows操作系统的基本功能、应用程序管理、文件管理以及网络连接等方面的知识。

2. 实验环境本次实验使用的操作系统为Windows 10,并安装了常用应用程序和网络连接工具。

3. 实验步骤3.1 Windows操作系统的基本功能3.1.1 开机与关机在实验机器上按下电源按钮,进行开机操作,待Windows系统完全加载后,进入桌面。

点击“开始”按钮,选择“关机”选项,进行关机操作。

3.1.2 桌面的基本元素桌面是Windows操作系统的主要工作区域,它包含了以下基本元素:- 桌面图标:代表文件、文件夹或快捷方式,用于快速访问。

- 任务栏:位于屏幕底部,用于启动应用程序、显示当前运行的任务和系统图标等。

- 通知区域:位于任务栏的右侧,显示系统图标和通知。

3.2 应用程序管理3.2.1 启动应用程序在任务栏上单击鼠标右键,选择“启动任务管理器”打开任务管理器窗口。

点击“应用程序”选项卡,可以查看当前正在运行的应用程序。

双击某个应用程序图标或右键单击该应用程序图标,选择“打开”即可启动相应的应用程序。

3.2.2 切换应用程序使用Alt+Tab键可以在多个应用程序之间快速切换。

3.2.3 关闭应用程序在应用程序的窗口右上角找到“X”按钮,点击即可关闭该应用程序。

3.3 文件管理3.3.1 创建文件夹在桌面或文件资源管理器中,右键单击空白处,选择“新建” -> “文件夹”,输入文件夹名称即可创建新的文件夹。

3.3.2 复制、粘贴文件选中需要复制的文件或文件夹,按下Ctrl+C进行复制,在目标位置按下Ctrl+V进行粘贴。

3.3.3 删除文件选中需要删除的文件,按下Delete键或右键单击文件选择“删除”。

3.3.4 文件搜索点击“开始”按钮,在搜索框中输入文件名或相关关键词,系统会在磁盘中搜索匹配的文件并显示结果。

  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系统调用,还不能靠自己的能力写出实验内容程序。

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

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

相关文档
最新文档