"OS实验报告-Muyun991:文件读写编程与命令行参数传递"

需积分: 0 0 下载量 44 浏览量 更新于2024-03-13 收藏 943KB PDF 举报
本次实验要求编写一个名为myecho.c的程序,其功能与系统echo程序相同,即接受命令行参数并将参数打印出来。例如,当输入$ ./myecho x时,程序应该输出x;当输入$ ./myecho a b c时,程序应该输出a b c。 为了完成这个任务,我们需要用到main函数的argv和argc参数。在C语言中,当我们在命令行输入字符串时,这些字符串会被分割为一个字符串数组,并以argv的形式被传递给main函数。而argc则包含了命令行参数的数量。 在编写myecho.c程序时,我们需要首先理清思路,明确程序的功能和实现方式。接下来,我们可以开始编写代码。在实际编写过程中,我们可以根据需求使用循环遍历参数数组,并使用printf函数打印出参数。 以下是myecho.c程序的实验代码: ```c #include <stdio.h> int main(int argc, char *argv[]) { for (int i = 1; i < argc; i++) { printf("%s ", argv[i]); } printf("\n"); return 0; } ``` 这段代码首先使用for循环遍历参数数组argv,从第二个参数开始(第一个参数是程序的名称),然后使用printf函数打印出参数,并在最后加上一个空格。最后打印一个换行符。 编写完代码之后,我们需要进行编译和执行测试。在命令行中输入以下命令进行编译: $ gcc -o myecho myecho.c 接着我们可以运行测试程序,测试不同的参数输入,确保程序的功能和预期一致。 最后,我们需要编写README.md文件,对程序进行说明,包括程序的功能、使用方法和示例。这样可以让其他人更容易理解和使用我们的程序。 本次实验通过编写myecho.c程序,加深了对命令行参数的理解,并学会了如何在C语言中处理命令行参数。希望通过这次实验,能够更好地掌握文件读写的相关知识,为以后的学习和工作打下坚实的基础。
2020-06-19 上传
一、实验目的 多道系统中,进程与进程之间存在同步与互斥关系。当就绪进程数大于处理机数时,需按照某种策略决定哪些进程先占用处理机。在可变分区管理方式下,采用首次适应算法实现主存空间的分配和回收。 本实验模拟实现处理机调度及内存分配及回收机制,以对处理机调度的工作原理以及内存管理的工作过程进行更深入的了解。 二、实验内容及要求 1.实验内容 (1)选择一个调度算法,实现处理机调度; (2)结合(1)实现主存储器空间的分配和回收。 2.实验具体要求 (1)设计一个抢占式优先权调度算法实现多处理机调度的程序,并且实现在可变分区管理方式下,采用首次适应算法实现主存空间的分配和回收。 (2)PCB内容包括:进程名/PID;要求运行时间(单位时间);优先权;状态;进程属性:独立进程、同步进程(前趋、后继)。 (3)可以随机输入若干进程,可随时添加进程,并按优先权排序; (4)从就绪队首选进程运行:优先权-1;要求运行时间-1;要求运行时间为0时,撤销该进程;一个时间片结束后重新排序,进行下轮调度; (5)考虑两个处理机,考虑同步进程的处理机分配问题,每次调度后,显示各进程状态,运行进程要显示在哪个处理机上执行。 (6)规定道数,设置后备队列和挂起状态。若内存中进程少于规定道数,可自动从后备队列调度一作业进入。被挂起进程入挂起队列,设置解挂功能用于将制定挂起进程解挂入就绪队列。 (7)结合实验一pcb增加所需主存大小,主存起始位置;采用首次适应算法分配主存空间。 (8)自行假设主存空间大小,预设操作系统所占大小并构造未分分区表。表目内容:起址、长度、状态(未分/空表目)。 (9)进程完成后,回收主存,并与相邻空闲分区合并。 (10)最好采用图形界面;