实验1-命令解释程序

合集下载

北京交通大学操作系统讲义

北京交通大学操作系统讲义

现代操作系统
陈向群等译
机械工业出版社
7/15/2021
北京交通大学操作系统
教材内容删减说明
第三章 处理机调度与死锁
➢ 3.3 实时调度 ➢ 3.4 多处理机系统中的调度
第五章 设备管理
➢ 5.6 磁盘存储器管理
第八章 网络操作系统 第九章 系统安全性
7/15/2021
北京交通大学操作系统
课程主要内容及教学安排
保护模式内存管理
➢ 内存寻址(分段寻址技术;逻辑地址14+32) ➢ 地址变换(分段[段选择符→段描述符] + 分页) ➢ 内存保护(全局/局部描述符表、特权级)
中断和异常处理
➢ 中断向量与中断描述符表、中断源与异常源
任务管理(任务状态段) 任务切换与过程调用不同!
7/15/2021
北京交通大学操作系统
1.1 什么是操作系统
1.1.1 操作系统的地位和目标 1.1.2 操作系统的作用 1.1.3 操作系统的组成及层次模型 1.1.4 操作系统的定义 1.1.5 操作系统举例
7/15/2021
北京交通大学操作系统
操作系统的作用(1) 用户与计算机硬件系统之间的接口
命令方式(操作系统外壳)
➢ 面向一般用户 ➢ 命令行/菜单式/命令脚本式/图形用户接口
操作系统其它硬件基础举例说明
内存地址空间布局、基本输入输出系统BIOS CMOS存储器与实时时钟RT I/O端口寻址和访问控制方式
➢ 主要使用独立编址方式,部分使用统一编址方式
中断控制器Intel 8259A、定时计数器Intel 8254 DMA控制器Intel 8237A、键盘控制器Intel 8042 串行控制卡RS-232标准 显示卡MDA/CGA/EGA/VGA 软盘控制器和硬盘控制器

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

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

操作系统实验报告——实验二:C编程环境实验目的1.熟悉Linux下C程序设计的环境;2.对系统调用有初步了解。

实验内容1.Linux下C语言程序的开发过程a、在用户主目录下用vi编辑C语言源程序(源程序已附后),如:$vi hello.c。

b、用gcc编译C语言源程序:$gcc ./hello.c -o example这里gcc是Linux下的C语言程序编译器(GNU C Compiler),./hello.c表示待编译的源文件是当前工作目录下的hello.c,-o example表示编译后产生的目标代码文件名为example。

c、若编译不正确,则进入vi修改源程序,否则,运行目标代码:$./example 。

注意:这只是gcc最基本的用法,其他常用选项有:-c , -S , -O , -O2, -g 等。

2.编辑、调试下面c语言程序,说明该程序的功能。

#include <stdio.h>#include <stdlib.h>int main() {int n,a[200],carry,temp,i,j,digit = 1;printf("Please input n:");scanf("%d",&n);a[0] = 1;for( i = 2; i <= n; ++i) {for( j = 1, carry = 0; j <= digit; ++j) {temp = a[j-1] * i + carry;a[j-1] = temp % 10;carry = temp / 10;}while(carry) {a[++digit-1] = carry % 10;carry /= 10;}}printf("Result is:\n%d ! = ",n);for( i = digit; i >=1; --i) {printf("%d",a[i-1]);}printf("\n");return 0;}程序运行结果截图:程序实现功能:计算非负数的阶乘,阶乘运算的结果的个位十位百位……分别保存在a[0],a[1],a[2]……3.编写命令解释程序(1)内容:利用C语言编写一个微型命令解释程序,接受并解释以下命令:1.dir //列当前目录2.cop 文件1 文件2 //拷贝文件3.era文件名//删除文件4.dis字符串//显示字符串5.end //结束,退出(2)要求:1.命令应该由空格隔开;2.进行命令合法性检查,若不合法,显示出错信息,等待重新输入;3.调用shell命令来完成各项功能。

实验一DEBUG的使用

实验一DEBUG的使用

实验一 DEBUG 的使用实验目的:1.学习使用.学习使用DEBUG DEBUG DEBUG程序的各种命令。

程序的各种命令。

程序的各种命令。

2.掌握.掌握8088/868088/868088/86指令系统指令系统指令系统---------算数指令。

算数指令。

算数指令。

3.掌握用.掌握用DEBUG DEBUG DEBUG调试自编程序的方法。

调试自编程序的方法。

调试自编程序的方法。

4.掌握.掌握8088/8086 CPU 8088/8086 CPU 寄存器的用途和存储器组织及它们之间的关系。

寄存器的用途和存储器组织及它们之间的关系。

寄存器的用途和存储器组织及它们之间的关系。

5.掌握内存操作数及寻址方法。

.掌握内存操作数及寻址方法。

6.掌握汇编语言伪操作.掌握汇编语言伪操作:BYTE PTR,WORD PTR :BYTE PTR,WORD PTR。

内容及步骤:一、一、DEBUG DEBUG 命令使用命令使用: :1、 敲 DEBUG 进入进入进入 DEBUG DEBUG 环境,显示提示符环境,显示提示符环境,显示提示符 '_ ' '_ '。

2、 用命令用命令 D100 10F D100 10F 观察内存中的观察内存中的161616进制码及屏幕右边的进制码及屏幕右边的进制码及屏幕右边的ASCII ASCII ASCII字符。

字符。

字符。

3、 用命令用命令 E100 30 31 32 E100 30 31 32 ………… 3F 3F 将30H 30H~~3FH 3FH写入地址为写入地址为写入地址为100H 100H 100H开始的内存单元中,开始的内存单元中,再用再用D D 命令观察结果,看键入的命令观察结果,看键入的161616进制数是什么字符的进制数是什么字符的进制数是什么字符的ASCII ASCII ASCII码码?4、 用命令用命令 F100 10F 'A' F100 10F 'A' 将'A''A'的的ASCII ASCII码填入内存,用码填入内存,用码填入内存,用D D 命令查看结果。

操作系统实验指导书

操作系统实验指导书

操作系统实验指导书实验⼀操作系统⽤户接⼝实验⼀、实验⽬的熟悉操作系统的命令接⼝、图形⽤户接⼝和程序接⼝。

⼆、实验内容:1、使⽤操作系统的命令接⼝。

使⽤Windows常⽤命令:dir 、md、copy、date、help,显⽰这些命令的结果,并解释这些命令的作⽤。

图1-1 命令控制台图1-2 windows常⽤命令图1-3 windows常⽤命令图1-4 windows常⽤命令使⽤图1-5 windows常⽤命令使⽤2、使⽤操作系统的程序接⼝。

VB环境下:编制⼀⼩程序,使其可通过某个系统调⽤来获得os 提供的某种服务,如打开控制⾯板:Shell "rundll32.exe Shell32.dll,Control_RunDLL", 1VC环境下:⽤C语⾔编制⼀个⼩程序,使其可通过Localtime( )系统调⽤来获得OS提供的时间和⽇期。

3、使⽤操作系统的图形⽤户接⼝(略)。

三、思考:OS向⽤户提供的命令接⼝、图形⽤户接⼝和程序接⼝分别适⽤于哪些场合?实验⼆进程创建与撤消⼀、实验⽬的1、加深对进程概念的理解和进程创建与撤消算法;2、进⼀步认识并发执⾏的实质。

⼆、实验内容本实验完成如下三个层次的任务:(1)系统级—以普通⽤户⾝份认识windows的进程管理。

通过windows的“任务管理器”观察进程的状态,进⾏进程的创建、切换和撤销。

(2)语⾔级—以普通程序员⾝份认识⾼级语⾔VC++/Java/VB的进程创建与撤销⼯具。

(3)模拟级—以OS设计师⾝份编程模拟实现进程创建与撤销功能,并在屏幕上观察进程活动的结果。

三、实验步骤1、windows的进程管理当前状态图2-1 windows任务管理器切换前图2-2 windows任务管理器切换后图2-3 windows任务管理器撤销图2-4 windows任务管理器2、VC++进程创建与撤销⼯具Windows所创建的每个进程都从调⽤CreateProcess() API函数开始,该函数的任务是在对象管理器⼦系统内初始化进程对象。

命令解释程序

命令解释程序

命令解释程序命令解释程序的作用命令解释程序的组成常驻部分这部分包括一些中断服务子程序。

例如,正常退出中断INT 20,它用于在用户程序执行完毕后,退回操作系统;驻留退出中断INT 27,用这种方式,退出程序可驻留在内存中;还有用于处理和显示标准错误信息的INT 24等。

常驻部分还包括这样的程序:当用户程序终止后,它检查暂存部分是否已被用户程序覆盖,若已被覆盖,便重新将暂存部分调入内存。

初始化部分它跟随在常驻内存部分之后,在启动时获得控制权。

这部分还包括对AUTOEXEC.BAT 文件的处理程序,并决定应用程序装入的基地址。

每当系统接电或重新启动后,由处理程序找到并执行AUTOEXEC.BAT文件。

由于该文件在用完后不再被需要,因而它将被第一个由装入的文件所覆盖。

暂存部分这部分主要是命令解释程序,并包含了所有的内部命令处理程序、批文件处理程序,以及装入和执行外部命令的程序。

它们都驻留在内存中,但用户程序可以使用并覆盖这部分内存,在用户程序结束时,常驻程序又会将它们重新从磁盘。

命令解释程序的工作流程系统在接通电源或复位后,初始化部分获得控制权,对整个系统完成初始化工作,并自动执行AUTOEXEC.BAT文件,之后便把控制权交给暂存部分。

暂存部分首先读入键盘缓冲区中的命令,判别其文件名、扩展名及驱动器名是否正确。

若发现有错,在给出出错信息后返回;若无错,再识别该命令。

一种简单的识别命令的方法是基于一张表格,其中的每一表目都是由命令名及其处理程序的入口地址两项所组成。

如果暂存部分在该表中能找到键入的命令,且是内部命令,便可以直接从对应表项中获得该命令处理程序的入口地址,然后把控制权交给该处理程序去执行该命令。

的工作流程。

操作系统上海大学实验

操作系统上海大学实验

第一部分《操作系统(一)》课程实验实验一Linux操作系统基本命令一.实验目的1. 了解Linux运行环境,熟悉交互式分时系统、多用户环境的的运行机制。

2. 练习Linux系统命令接口的使用,学会Linux基本命令、后台命令、管道命令等命令的操作要点。

二.实验环境复习操作系统中相关的用户接口概念。

查阅Linux中Shell的资料,它既是一个命令解释程序,又是一个程序设计语言。

熟悉本《实验指导》第二部分,从中你可以学会Shell的一般命令。

三.实验内容通过终端或虚拟终端,在基于字符的交互界面中进行Shell的基本命令的操作。

四.操作过程查看信息命令文件操作命令文件链接的意思——在文件之间创建链接。

作用——给系统中u、已有的某个文件指定另外一个可用于访问它的名称。

对于新的文件名,我们可以为其指定不同的访问权限,以控制对信息的共享和安全性问题。

目录操作思考:Linux文件类型有哪几种?文件的存取控制模式如何描述?文件类型有普通文件(~)、目录文件(d)、块设备特别文件(b)、字符设备特别文件(c)、命名管道文件(p)等。

“存取控制模式”指对不同用户分配不同的操作权。

Linux文件系统将用户分为3类,即文件主、同组人、其他人。

每种人可以执行3种操作,r,w,x。

修改文件属性不能,文件已经不属于本个用户。

进程管理命令思考:系统如何管理系统中的多个进程?进程的家族关系是怎样体现的?有什么用?在linux系统上运行任何东西,每个用户的工作、每个系统监控程序等等都是已进程形式运行的。

因此进程管理师linux系统管理非常重要的一个方面。

交互式进程:一个由shell启动控制的进程,可在前台或后台运行;批处理进程:与终端无关,安排在指定时刻完成一系列进程;守护进程:在引导系统时动,以执行即时的操作系统任务。

当用户管理进程时,必须用到PID号。

实验二用户界面与Shell 命令一实验要求(1)(2)(3)(4)(1)掌握图形化用户界面和字符界面下使用Shell 命令的方法。

计算机组成原理实验补充实验指导-实验1、2

计算机组成原理实验补充实验指导-实验1、2

实验一、实验箱介绍与DEBUG简单使用一、实验目的1)了解实验箱的构成2)掌握模型机的结构框图3)学会DEBUG的简单使用二、实验内容1.实验箱介绍图1-1 计算机组成原理实验箱图1-1给出了实验箱的结构图,构成部分均在实验箱的印刷电路板上标注,如:ALU Uint(算逻单元)、Input Device Unit(输入单元)、Switch Unit(控制开关单元)、Bus Unit(总线单元)……,同学们要结合计算机的组成原理,确定运算器、控制器、存储器、输入设备、输出设备等在实验箱中的位置。

2.模型机的框图图1-2 模型机框图图1-2给出了计算机模型机的框图,同学们在做实验时,要体会实验中数据的流向,以便对整机有一个完整的认识。

3.DEBUG的简单使用DEBUG须在DOS环境下运行。

具体操作可以在Windows操作系统的“开始”菜单的“运行”对话框中输入“CMD”(命令command)如图1-3所示。

图1-3 Windows的运行窗口Windows的“DOS”模式,如图1-4所示。

图1-4 Windows下的“DOS”模式输入命令DEBUG(调试),见图1-5.图1-5 DEBUG调试窗口DEBUG命令是在“-”下,由键盘键入的。

每条命令以单字母命令符开头,然后是命令的操作参数,操作参数与命令符之间用空格隔开,操作参数与操作参数之间用空格或逗号隔开,命令的结束符是回车键。

命令及参数的输入可以是大小写的结合。

Ctrl+Break键可中止命令的执行。

Ctrl+Num Lock键可暂停屏幕卷动,按任一键继续。

所用数均为十六进制数,不用加H。

有关DEBUG中的D(显示)、R(寄存器)、U(反汇编)、G(执行)和Q(退出)等命令已在前面讲过了。

下面介绍本实验用到的DEBUG的命令:(1)A-汇编,用于输入汇编语言源程序(2)g-运行,运行用A命令编写的汇编语言程序(3)e-编辑,用于修改计算机内存中存储单位的数据(4)d-显示,用于显示计算机内存中存储单位的数据(5)q-退出,用于退出DEBUG的状态,到DOS提示符下。

c语言命令解释程序

c语言命令解释程序

c语言命令解释程序
C语言是一种广泛应用于系统软件、应用软件、嵌入式软件和
游戏开发等领域的高级程序设计语言。

它是一种通用的、面向过程
的编程语言,具有高效、灵活、强大的特点。

C语言的命令解释程
序通常指的是C语言编译器和解释器,这些程序可以将C语言源代
码翻译成机器码或者直接解释执行。

C语言编译器是将C语言源代码转换成可执行文件的工具。


会对源代码进行词法分析、语法分析、语义分析和代码生成等步骤,最终生成可执行文件。

常见的C语言编译器有GCC、Clang等。

另外,C语言也可以通过解释器进行解释执行。

解释器会逐行
解释执行C语言源代码,并将其转换成机器码进行执行。

这种方式
可以方便地进行调试和动态执行。

但相对于编译器而言,解释执行
的性能通常较差。

总的来说,C语言的命令解释程序包括编译器和解释器,它们
是将C语言源代码转换成可执行文件或者直接解释执行的工具,为
C语言程序的开发和运行提供了重要的支持。

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

实验报告
院(系):
专业班级:
学号:
姓名:
实验地点:
实验日期:
一、实验目的及要求
1.理解命令解释程序工作原理。

2.掌握c语言编程初步。

二、实验环境
计算机,Microsoft Visual C++ 6.0;
三、实验内容
利用高级语言编写一个微型命令解释程序,接收并解释执行以下命令:dir 列出当前目录
cop 文件1 文件2 拷贝文件
era 文件名删除文件
dat 显示日期
tim 显示时间
end 结束,退出
画出程序流程图,编写程序,实现上述功能。

四、实验步骤
1.实验过程:
a.设计界面
b.设计主函数
c.各个函数的实现
d.连接调用
2.画流程图
3.根3.根据指令,以及流程图编写c语言代码
代码如下:
#include<string.h>
#include<process.h>
#include<stdio.h>
void main()
{
int i,num;
char a[10],b[50],c[50],d[50],e[50],f[50];
char sjs[6][20]={"dir","cop","era","dat","tim","end"};
while(1)
{
printf("******************************\n");
printf("*dir:List File *\n");
printf("*cop:Copy File *\n");
printf("*era:Delete File*\n");
printf("*dat:Date *\n");
printf("*tim:Time *\n");
printf("*end:Quit *\n");
printf("******************************\n");
printf("******************************\n");
printf("Please Input b:\n");
scanf("%s",&a);
for(i=0;i<=6;i++)
{
if(!strcmp(a,sjs[i]))
{
num=i;
break;
num=7;
}
}
strcpy(b,"");
strcpy(c,"");
strcpy(d,"");
switch(num)
{
case 0:
strcpy(b,"dir");break;
case 1:
printf("Please Input Source File:");
scanf("%s",&e);
printf("\nPlease Input Destination:");
scanf("%s",&c);
strcat(b,"copy");
strcat(b,e);
strcat(b," ");
strcat(b,c);
break;
case 2:
printf("Please Input Delete File:");
scanf("%s",&d);
strcat(b,"del");
strcat(b,d);
break;
case 3:printf("Please Input String Date:");
scanf("%s",&e);
strcat(b,"Date ");
printf("Data:%s",e);
break;
case 4:printf("Please Input Tim:");
scanf("%s",&f);
strcat(b,"Time ");
printf("Tim:%s",f);
break;
case 5:
printf("退出!!\n");exit(0);
default:
printf("Err Command,Input Command Again!\n"); }
if(num>=0&&num<=5)
system(b);
}
}
五、调试过程
1.在写程序的过程中始终出现错误,忘记写<String.h>头文件。

2.在建立txt文档时,不需要后缀名,系统会默认txt类型。

六、实验结果及分析
本次实验依次实现了列出当前目录、拷贝文件、删除文件、显示日期、显示时间、结束退出等功能。

如下图所示:
七、总结
1.在程序中所用到的系统函数必须写上头文件。

2.通过编程也了解了系统函数的一些功能,加深了对它的了解。

3.在调试过程中,难免会出现错误,要耐心查找错误源。

相关文档
最新文档