lab9(文件系统调用)

lab9(文件系统调用)
lab9(文件系统调用)

实验九文件系统调用实验(综设实验)

1.实验目的

●熟悉和掌握Unix/Linux环境下的常用文件/目录的常用System Call;

●了解Unix/Linux文件系统结构,特殊文件的作用和操作方法;

●加深对《文件系统》一章内容的理解;

2.实验要求

●独立完成实验内容;

●必要的文档和注释;(简单要求如下)

3.实验内容

编写一个文件工具filetools,使其具有以下功能:

******************************

0.退出

1.创建新文件

2.写文件

3.读文件

4.修改文件权限

5.查看当前文件权限并退出

******************************

提示用户输入功能号,并根据用户输入的功能选择完成相应的功能。

代码:

#include

#include

#include

#include

#include

#include

#include

#include

#define MAX 256

int chmd()

{

int c;

mode_t mode=S_w;

printf("0.0700\n 1.0400\n 2.0200\n 3.0100\n");

printf("Please input your choice(0-3):");

scanf("%d",&c);

switch(c)

{

case 0:chmod("file1",S_rwx);break;

case 1:chmod("file1",S_r);break;

case 2:chmod("file1",S_w);break;

case 3:chmod("file1",S_x);break;/*调用chmod函数更改文件的权限,其中第一个参数为要更改权限的文件名,第二个参数为要修改到的权限,其中,S_rwx 表示具有执行、可读、可写权限,S_r 表示具有可读权限,S_w 表示具有可写权限,S_x 表示具有可执行权限。*/

default:printf("Wrong choice! The choice must be chosen between 0-3.Please reinput your chioce.\n");

}

return(0);

}

main()

{

int fd;

int num;

int choice;

char buffer[MAX];

struct stat buf;

char*path="bin/ls";

char*argv[4]={"ls","-1","file1",NULL};

while(1)

{

printf(" Dear User , welcome! ");

printf("***********************************\n");

printf("0.Exit\n");

printf("1.CreatNewFile\n");

printf("2.Write\n");

printf("3.Read\n");

printf("4.Chmod\n");

printf("5.Check\n");

printf("************************************\n");

printf("Please input your choice between (0-6):");

scanf("%d",&choice);

switch(choice)

{

case 0:close(fd);

exit(0);

case 1:

fd=open("file1",O_RDWR|O_TRUNC|O_CREAT,0750);/*调用open()

函数打开文件,其中参数O_CREAT 表示当打开的文件不存在时,创建该文件,*/

if(fd==-1)

printf("File Create Failed!\n");

else

printf("fd=%d\n",fd);

case 2:

num=read(0,buffer,MAX);/*调用read()函数,函数的第一个参数为要读取的文件描述符,0 表示从输入流中读取文件,第二个参数表示将读取到的数据存放到buffer 缓冲区中,第三个参数为最大读取的字符个数。函数的返回值为实际读取到的字符数。*/

write(fd,buffer,num);/*调用write()函数,该函数的第一个参数为要将数据写入的文件描述符,第二个参数为要写入的缓冲区,第三个参数为写入的字符长度*/ break;

case 3:

read(fd,buffer,MAX); /*将文件标识符为fd 中的文件中的数据读取到buffer 缓冲中。*/

write(1,buffer,num); /*将buffer 缓冲区中的数据写入到输出流中,输出到显示器上。*/

break;

case 4:

chmd();

printf("The mode had been changed successfully!\n");

break;

case 5:

execv(path,argv);/*替换当前的进程执行终端上的指令。*/

break;

default:

printf("Wrong choice! The choice must be chosen between 0-3.Please reinput your chioce.\n");

}

}

}

4.参考资料

●教材第六章

●LINUX系统编程

5.评分标准

●A——选做内容/必做内容功能完善,编程风格好,人机接口界面好;

●B——必做内容功能完善,完成部分选做内容,编程风格好,人机接口界面良好;

●C——完成必做内容,编程风格良好;

●D——能完成必做内容;

●E——未按时完成必做内容,或者抄袭(雷同者全部为E)。

read系统调用流程

Read 系统调用在用户空间中的处理过程 Linux 系统调用(SCI,system call interface)的实现机制实际上是一个多路汇聚以及分解的过程,该汇聚点就是 0x80 中断这个入口点(X86 系统结构)。也就是说,所有系统调用都从用户空间中汇聚到 0x80 中断点,同时保存具体的系统调用号。当 0x80 中断处理程序运行时,将根据系统调用号对不同的系统调用分别处理(调用不同的内核函数处理)。系统调用的更多内容,请参见参考资料。 Read 系统调用也不例外,当调用发生时,库函数在保存 read 系统调用号以及参数后,陷入 0x80 中断。这时库函数工作结束。Read 系统调用在用户空间中的处理也就完成了。 回页首 Read 系统调用在核心空间中的处理过程 0x80 中断处理程序接管执行后,先检察其系统调用号,然后根据系统调用号查找系统调用表,并从系统调用表中得到处理 read 系统调用的内核函数 sys_read ,最后传递参数并运行 sys_read 函数。至此,内核真正开始处理 read 系统调用(sys_read 是 read 系统调用的内核入口)。 在讲解 read 系统调用在核心空间中的处理部分中,首先介绍了内核处理磁盘请求的层次模型,然后再按该层次模型从上到下的顺序依次介绍磁盘读请求在各层的处理过程。 Read 系统调用在核心空间中处理的层次模型 图1显示了 read 系统调用在核心空间中所要经历的层次模型。从图中看出:对于磁盘的一次读请求,首先经过虚拟文件系统层(vfs layer),其次是具体的文件系统层(例如 ext2),接下来是 cache 层(page cache 层)、通用块层(generic block layer)、IO 调度层(I/O scheduler layer)、块设备驱动层(block device driver layer),最后是物理块设备层(block device layer)

VxWorks常用命令汇总

VxWorks常用的命令 1.与任务相关的命令 sp function,[arg1],...,[arg9] -启动任务,最多接受9个参数,默认的优先级100、堆栈20000字节 period n,function,[arg1],...,[arg8] -创建一个周期调用function的任务,周期为n秒,最多接受8个参数 repeat m,function,[arg1],...,[arg8] -创建一个反复调用function的任务,调用次数为m,m=0时永久调用,最多也是8个参数 ts tidX -挂起任务 tr tidX -恢复挂起的任务 td tidX -删除任务 i tidX -显示任务基本信息,参数为0时显示全部任务 ti tidX -显示任务详细信息,包括寄存器、堆栈等 tt tidX -显示任务的函数调用关系 checkStack tidX -显示任务堆栈使用的历史统计,参数为0时显示全部任务 [其中tidX可以为任务ID 也可以为任务名] 2、系统信息 lkup ["string"] -在系统符号表中查找并列出含有"string"字符的函数及全局变量,有两个特殊参数: 0,给出符号表统计;""(空字符串),列出全部符号 lkAddr addr -显示addr地址附近的符号表 l addr,[n] -显示addr地址开始的n条指令的反汇编,n省略时默认为10条指令 h [n] -n为0时列出最近执行的shell命令,默认20条;n非0时,设定shell记录的历史命令的数目 d [addr,[number],[width]] -显示addr地址开始的number个单元的内容,width定制每个单元的宽度,可以是1、2、4、8 m addr,[width] -按width宽度修改addr地址的内容,width可以是1、2、4、8 memShow 1 -显示系统分区上空闲和已分配空间的总数等 printErrno value -打印系统定义的错误码的宏 3、与网络相关的命令 ifShow ["ifname"] - show info about network interfaces inetstatShow - show all Internet protocol sockets tcpstatShow - show statistics for TCP udpstatShow - show statistics for UDP ipstatShow - show statistics for IP icmpstatShow - show statistics for ICMP arpShow - show a list of known ARP entries

linux系统编程试卷(答案)

凌阳教育 嵌入式培训系统编程部分测试试题 注:考试为闭卷,程序题需上机操作运行出结果,考试时间为120分钟 一:选择题(本题共4小题,每题3分共12分) 1)下列不是Linux系统进程类型的是( D ) A 交互进程 B 批处理进程 C 守护进程 D 就绪进程(进程状态) 2)以下对信号的理解不正确的是( B ) A 信号是一种异步通信方式 B 信号只用在用户空间进程通信,不能和内核空间交互 C 信号是可以被屏蔽的 D 信号是通过软中断实现的 3)进程有三种状态( C ) A 准备态、执行态和退出态 B 精确态、模糊态和随机态 C 运行态、就绪态和等待态 D 手工态、自动态和自由态 4)不是进程和程序的区别( B) A 程序是一组有序的静态指令,进程是一次程序的执行过程 B 程序只能在前台运行,而进程可以在前台或后台运行 C 程序可以长期保存,进程是暂时的 D 程序没有状态,而进程是有状态的 二:填空题(本题共6小题,2)、3)两题每空四分,其余每空一分。共23分) 1) 列举八种常见的进程间通信方式无名管道、有名管道、消息队列、信号量、共享内存、信号、套接字 网络上两个主机的进程间通信方式为套接字 2) 命名管道比无名管道的优势提供了一个可以访问的路径名,实现没亲缘关系的进程 间通信 3) 消息队列比命名管道和无名管道的优势可以按类型实现消息的随机查询,没必要先 进先出 4) 按照逻辑结构不同进行数据库划分,Sqlite 数据库属于哪一类关系型数据库 5) 在C语言中操作sqlite数据库,常用的2中方式是sqlite_exec(回调)、

sqlite_gettable(非回调) 6) 列举四种进程调度算法先来先调度(FCFS)、短进程优先调度(SPF)、高优先级调度 (HPF)、时间片轮转调度 三:问答题(本题共7题,每题5分,共35分) 1) 什么是系统调用?系统调用是通过什么方式陷入内核态的?请写出你对系统调用的理解。什么是文件I/O和标准I/O库?文件I/O和标准I/O库的区别? 系统调用是指操作系统提供给用户程序调用的一组特殊接口,用户程序可以通过这组接口获得操作系统内核提供的服务。 系统调用是通过软件中断方式陷入内核的 linux的文件I/O是由操作系统提供的基本IO服务, 标准I/O库通过封装系统调用,提供了一个到底层I/O的接口。 标准I/O默认采用了缓冲机制,还创建了一个包含文件和缓冲区相关数据的数据结构;文件I/O一般没有采用缓冲模式,需要自己创建缓冲区。一种是标准库封装系统调用而成,更高级,一种是系统提供的,比较低级;标准I/O可移植性高、文件I/O可移植性低。 2) 什么是进程?用fork()创建一个子进程时,系统会做什么工作 进程是具有独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配的单位,不仅是系统内部独立运行的实体也是独立竞争资源的实体。 用fork()时系统会分配子进程一个ID号然后继承父进程的地址空间,包括进程上下文进程堆栈打开的文件描述符等等,他就是父进程的一个复制品。 3) 进程和线程有什么区别? 每个独立的进程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在进程程中,由进程提供多个线程执行的控制。 进程是系统进行资源分配和调度的一个独立单位. 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源. 一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行。 4) 什么是线程的互斥和同步,程序应怎样写才能达到互斥或同步? 互斥:是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的。 同步:是指在互斥的基础上(大多数情况),通过其它机制实现访问者对资源的有序访问。在大多数情况下,同步已经实现了互斥,特别是所有写入资源的情况必定是互斥的。少数情况是指可以允许多个访问者同时访问资源。 在写程序时可以用互斥锁和信号量实现线程同步,一个线程访问共享资源时给这个资源上锁其他线程就不能访问了直到上锁的进程释放互斥锁为止。 5) 什么是僵尸进程?孤儿进程?守护进程? 僵尸进程:僵尸进程是指它的父进程已经退出(父进程没有等待(调用wait/waitpid)它),而该进程dead之后没有进程接受,就成为僵尸进程,也就是(zombie)进程。 孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成

操作系统实验一 系统调用

huixing操作系统实验一 姓名:廖桉冬学号:09012431 日期:15/3/27 实验内容: 使用系统调用,用C或C++写一个程序,实现如下功能:从一个文件中读出数据,写入另一个文件中。 实验要求: 具有良好的交互性 使用者可输入源文件和目的文件的路径和文件名。 具有完善的错误处理机制 针对可能出现的各种错误,要有相应的错误提示输出,并作相应处理。 在Windows和Linux操作系统上调试并运行 实验目的: 通过实验,加深对系统调用概念的理解,了解其实现机制以及使用方式。 通过在Linux操作系统上编写和调试简单程序,进一步熟悉Linux操作系统的使用,初步掌握linux环境下的C或C++编译和调试工具,为进一步理解和学习Linux操作系统的内核结构和核心机制作准备。 设计思路和流程图 读入源文件/目标文件名-->打开文件流-(打开是否正常)->将源文件字符流读出暂存-->将字符流输出到目标文件; 主要数据结构及其说明 string:暂存文件名 ifstream/ofstream:文件流输入输出 a:字符暂存 源程序并附上注释 #include #include #include using namespace std; int main() { //读取文件名 string infile; string outfile; cout<<"输入你想要读取的文件名/(路径) :"<

cin>>infile; cout<<"输入你想要写入的文件名/(路径) :"<>outfile; //打开文件流 ifstream f_in(infile.c_str()); ofstream f_out(outfile.c_str(),ios::app); if(!f_in) { cout<<"源文件不存在."<>a; f_out<

操作系统试题与答案

一、填空题(20分,每空1分) 1、操作系统设计得两个目标就是易用与高效。 2、P、V操作必须成对出现,有一个P操作就一定有一个V操作。 3、临界资源就是指系统中一次只允许一个进程使用得资源,而临界区就是指涉及到临界资源得代码段。 4、在请求式分页系统中,页框得分配有一种方式称为固定分配,固定分配有两种不同得方式,分别就是平均分配与按比率分配。 5、在请求式分页存储管理系统中,不能在计算机中实现得页面淘汰算法就是最佳算法,选择淘汰不再使用或最远得将来才使用得页得算法就是先进先出算法,选择淘汰在主存驻留时间最长得页得算法就是最近最少使用. 6、文件得结构就就是文件得组织形式,从用户观点出发所瞧到得文件组织形式称为文件得逻辑结构;从实现观点出发,文件在外存上得存放组织形式称为文件得物理结构. 7、文件得目录组织形式主要有单级目录、二级目录、树型目录与图型目录等. 8、设备得寻址方式主要有直接I/O指令与存储器映射I/O指令. 9、协同进程间一般通过信箱进行间接通信。 二、选择题(20分,每题2分) 1、紧耦合系统就就是 4 。 (1)分时操作系统(2)分布式操作系统 (3)网络操作系统(4)并行操作系统 2、以下不属于操作系统部件得就是2。 (1)进程管理(2)数据库管理 (3)保护系统(4)命令解释器系统 3、如P与V操作得信号量S初值为4,则现在S=-1,表示有 1 个进程在等待。(1)1(2)2 (3) 3 (4)5 4、用V操作可以唤醒一个进程,被唤醒得进程状态变为1。 (1)就绪(2)运行(3)阻塞(4)完成 5、所有就绪状态得进程按建立得先后顺序形成一个对列,从队列首挑选一个进程,分给时间片q,投入运行.当时间片到时,而又没有完成得进程,将再次加入到队列尾,排队等待下一轮调度。这种进程调度算法称为2。 (1)循环轮转调度算法 (2)优先数调度算法 (3)固定周期轮转调度算法 (4)多级队列调度算法 6、页式存储管理得快表一般存放在4。 (1)内存(2)外存(3)硬盘(4)CACHE 7、虚拟存储器得最大容量由 2 决定。 (1)内存容量 (2) 程序得地址空间 (3)内外存容量 (4)计算机得地址机构 8、可以分配给多个进程得设备就是 1 。 (1)共享设备(2)块设备 (3)独占设备(4)互斥设备 9、光盘上得文件一般可以采用3存取方式.

嵌入式系统的比较

嵌入式系统的比较 简单介绍ecos, uc/OS,uClinux,RTlinux,Linux 到目前为止接触过QNX、RTLinux、uC/OS-II、Nucleus Plus、VRTX、VxWorks、eCos,总结下来有以下特点: Ecos:多任务抢占机制,可配置(特色),可配置文件系统 uc/OS:代码很少,多任务抢占机制,需自己扩展文件系统 uClinux:非抢占式,没有MMU管理存储器,有文件系统等许多功能 RTlinux:通过在L inux内核与硬件中断之间增加一个精巧的可抢先的实时内核,把标准的Linux内核作为实时内核的一个进程与用户进程一起调度,标准的L inux内核的优先级最低,可以被实时进程抢断。正常的Linux进程仍可以在Linux内核上运行。 Linux:有MMU管理存储器。 1:QNX 的可靠性很好,协议栈、各种外设驱动稳定,只是运行所需资源有些多,需要MMU。如果需要高可靠性应用,QNX可能是最好的选择。 2:RTLinux的实时性与其它RTOS相比有些差。但是,因为好多Linux资源可以利用,是RTLinux的优点。但是运行所需资源比QNX还多,也是需要MMU。可以选用开源的RTLinux 或内容新的商用RTLinux。 3:uC/OS-II比较小巧,移植容易,网上资源很多,核心可以做得很小。但不是免费的,并且驱动需要自己编写,协议栈、图形驱动都要另外加。 4:Nucleus Plus比uC/OS-II庞大,另外提供了文件系统、协议栈、图形界面等许多东西。当然也是分开卖的,不是免费的东西。使用起来比较容易上手。 5:VRTX 是一款比较早的RTOS,现在使用的人已经很少。运行还是比较可靠。配套的文件、协议栈等模块很少。 6:VxWorks是RTOS中的大牛,国内外用的人很多,开发工具功能强大,使用方便,但是价格昂贵。也有基于MMU的高可靠性的产品。所需资源比QNX小,比uC/OS、eCos 多。对于一些私企或者好似小公司来说,可用性值得商榷。 7:eCos是开源的RTOS。针对不同的CPU已经做了许多现成的移植。代码尺寸比Nucleus 的略大。如果不用USB host等,并且不想花费太多的金钱,应该是不错的选择。 μC/OS和uClinux的比较 引言 随着现代计算机技术的飞速发展和互联网技术的广泛应用,从PC时代过渡到了以个人数字助理、手持个人电脑和信息家电为代表的3C(计算机、通信、消费电子)一体的后PC 时代。后PC时代里,嵌入式系统扮演了越来越重要的角色,被广泛应用于信息电器、移动设备、网络设备和工控仿真等领域。 嵌入式系统是以嵌入式计算机为核心,面向用户、面向产品、面向应用,软硬件可裁减的,适用于对功能、可靠性、体积、成本、功耗等综合性能有严格要求的计算机系统。随着

vxWorks开发环境构建步骤及开发资源

vxWorks开发环境构建步骤及开发资源 技创科技(Technique Innovator Inc.) https://www.360docs.net/doc/d38027926.html, 一、Tornado集成开发环境构成 Tornado是集成开发环境的名称,主要由帮助及参考文档、操作系统vxWorks、开发工具(编译器、调试器、编辑器、target server等,据统计,挂接在Tornado下的可选工具和第三方有数百个)等三部分构成,分别对应三个目录: i.docs/ 所有文档都集中在该目录中, books.html是根索引,入门级开发请务必查看 以下文档: ●如果要熟悉使用界面及Tornado使用、创建工程,请参考:Tornado用户手册 及Tornado集成开发环境的HELP->content调出来的联机帮助文档; ●vxWorks的编译是使用标准GNU Makefile来编译连接的,要了解Makefile语 法请参考”GNU Make”;具体的Make rules存放在target/h/make/目录下。 ●如何调试?请参考“Debugging with GDB” ●vxWorks构成、特点及kernel,编程等:请参考:VxWorks Programmer's Guide, 系统调用、库函数接口标准等,请参考:VxWorks Reference Manual ●有关BSP(board support package)的构成、初始化、底层驱动等,请参考“BSP Reference” ●网络应用编程指南(socket编程): “VxWorks Network Programmer's Guide” ii.host/ 该部分存放主机端(开发机)的工具,如Tornado.exe,make.exe,编译器、调试器及TCL命令解释器等等,开发中要用到的工具都存放在目录 host\x86-win32\bin 下,部分命令是.exe文件,部分是.bat的,其中有torvars.bat文 件,是设置Tornado集成开发环境的环境变量用的,在使用其他工具前,要运行它 设置正确的环境变量及可执行文件搜索路径。 iii.target/ vxWorks操作系统、源码、BSP、设备驱动、头文件、配置文件等config/ BSP的存放地方,底层开发者绝大部分时间在该目录下度过,该目录下除了all/和comps/外,其他每个目录对应一种硬件板的BSP,开发者在 做BSP开发时,原则上除了对应BSP目录能修改外,target/目录下的其他 所有目录都不应该作出改动,否则会影响到其他BSP,常用BSP有: pid7t/ →ARM公司推出的pid7 ARM7TDMI评估板的BSP integratorX/ →ARM公司推出的integratorXXX评估板的BSP tk4510a/ →我们要使用的S3C4510B板的BSP SNDS100/ →三星公司推出的SNDS100(KS3C50100/S3C4510B)板的 BSP h/ 头文件存放地点,包括vxWorks的及所有其他组件的 arch/arm/ ARM体系结构相关头文件 make/ 编译连接时要用到的规则都存放在这里 vxWorks.h wind Kernel(vxWorks的核心”Wind Kernel”的API及常量说明) lib/ vxWorks是一个商用操作系统,其不开放源码部分的.o文件及.a(库文件)文件存放在这里(当然,除了config/目录外,所有其他目录下的*.c源码在编

操作系统答案及评分标准

东莞理工学院(本科)2008-2009第一学期 操作系统(A卷)答案及评分标准 一、术语解释(共20 分每题2分) 进程;进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位;(2分) 中断;CPU暂停当前程序的执行,转去处理计算机内部或外部发生的突发事件,完成突发事件处理后回到原来程序执行的过程;(2分) 重定位;从程序的逻辑地址映射到物理地址的过程;(2分) 页面抖动;刚调进内存的页面不久又被调出,而调出后不久又被调入,CPU大量的时间花费的页面调入调出的现象;(2分) 文件的物理组织;文件在存储设备上的组织结构;(2分) 分时;将CPU的运行时间划分成若干个时间段(称为时间片),循环轮流分配给各个程序(用户)使用; (2分) 死锁;在一个进程集合中的每个进程,都在等待仅由该集合中的另一进程才能引发的事件,而无限期地僵持下去的局面; (2分) 吞吐量;单位时间内完成的作业数; (2分) 进程同步;一个进程执行到某一点后要等到另一进程执行到某点才能继续往下执行的一种进程间关系;(2分) 虚拟存储器;只进程分配部分所需内存,剩下内存需求等到进程真正需要访问这些存储器时才被调入,但在用户看来却分配到了所有所需内存,这种内存管理方式成为虚拟存取器。(2分) (评分标准:因为各人表述方式不同,对每一小题,术语基本解释清楚即可得全分) 二、简答题(共30分每题5分) 1. 处理器有用户态和核心态等2种工作状态(4分),设置2种工作状态的原因是为了对操作系统内核进行保护(1分)。 2. 当CPU要访问的页面不在内存中时,就发生缺页中断(3分);发生缺页中断时,CPU转缺页中断处理程序执行,将待访问页面从外村调入内存,返回被中断程序,重新启动引起缺页的指令(2分)。 3. 高级调度是作业调度,为作业分配资源,将作业调入内存,并为之创建进程(2分);低级调度为进程调度,为进程分配处理器(2分);作业调度为进程调度做准备(1分)。 3. 死锁产生的4个必要条件是:互斥条件、占用且等待条件、循环等待条件、不可抢占条件。(答对1个得2分,2个得3分,3个得4分,4个得5分) 5. 操作系统是一种系统软件,是若干程序模块所的集合,它负责管理和控制计算机系统的硬件、软件资源的分配、调度和管理,使系统高效、安全地运行(2分);为用户提供简单、直观、灵活的用户接口和使用环境(1分);操作系统的主要功能是实现对计算机系统软硬件资源的管理(2分)。 6.引进高级通信机构的目的是为了在进程间实现大量数据的交换(4分);进程间通信机制的实例有:管道、消息通信、共享内存等(列出1种即可,1分)。 三、理解题(共20分每题5分) 1.设备分配;设备回收;设备启动;I/O操作;中断处理;缓冲区管理;(评分标准:每项1分,最多5分) 2. 进程正常结束;进程出错终止;运行时间片用完;等待I/O操作;优先级更高度进程就绪;(评分标准:每项1分,最多5分) 3. 有效地址 (1,500)的物理地址为:1024×3+500=3572; (3分) 有效地址 (2,3000)不合法;(1分) 有效地址(3,100)的页号超出页表范围,出现地址越界;(1分)

常见的嵌入式操作系统

常见的嵌入式操作系统 分类:嵌入式操作系统2012-12-11 10:06 459人阅读评论(1) 收藏举报嵌入式操作系统 嵌入式操作系统与通用的操作相比较主要特点在于: 1.小内核,稳定可靠。 2.需要可装卸、可裁剪,以便能灵活应对各种不同的硬件平台。 3.面向应用,强实时性,可用于各种设备控制当中。 国际上常见的嵌入式操作系统大约有40种左,右如:Linux、uClinux、WinCE、PalmOS、Symbian、eCos、uCOS-II、VxWorks、pSOS、Nucleus、ThreadX 、Rtems 、QNX、INTEGRITY、OSE、C Executive 。他们基本可以分为两类,一类是面向控制、通信等领域的实时操作系统,如windriver公司的vxworks、isi的psos、qnx系统软件公司的qnx、ati的nucleus等;另一类是面向消费电子产品的非实时操作系统,这类产品包括个人数字助理(pda)、移动电话、机顶盒、电子书、webphone等,系统有Microsoft的WinCE,3Com 的Palm,以及Symbian和Google的Android等。 一、VxWorks VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),是T ornado嵌入式开发环境的关键组成部分。良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌人式实时操作系统领域逐渐占据一席之地。VxWorks具有可裁剪微内核结构;高效的任务管理;灵活的任务间通讯;微秒级的中断处理;支持POSIX 1003.1b实时扩展标准;支持多种物理介质及标准的、完整的TCP/IP网络协议等。 然而其价格昂贵。由于操作系统本身以及开发环境都是专有的,价格一般都比较高,通常需花费10万元人民币以上才能建起一个可用的开发环境,对每一个应用一般还要另外收取版税。一般不通供源代码,只提供二进制代码。由于它们都是专用操作系统,需要专门的技术人员掌握开发技术和维护,所以软件的开发和维护成本都非常高。支持的硬件数量有限。 二、Windows CE Windows CE与Windows系列有较好的兼容性,无疑是Windows CE推广的一大优势。其中WinCE3.0是一种针对小容量、移动式、智能化、32位、了解设备的模块化实时嵌人式操

添加系统调用实验报告

一、构建基本的实验环境 1.1基本实验环境与前提条件 Windows7 、Word 2010、Vmware WorkStation 8.5、AdobeReader ReadHatLinux 9.0,gcc,vi Linux内核[V2.4.18] 1.2虚拟机的安装及使用 1.3将Linux 内核源代码及配置文件传送给虚拟机上的Red Hat Linux V9.0 系统 配置网络时遇到这个问题, Determining IP information for eth0... failed; no link present. Check cable? 通过查找资料发现是系统的Bug, 解决方法如下: 到/etc/sysconfig/network-scripts/ifcfg-eth0 在文件最后一行中加入 check_link_down () { return 1; } 另外如果存在/etc/sysconfig/networking/profiles/default/ifcfg-eth0 文件,则同样在其中加入这一段东西即可,然后重启系统。 设置网络为DHCP,重新启动就可以,啦,直接上图

最后将内核代码下载到/root目录下 二、Linux 内核编译、配置与调试 2.1 内核配置与编译 2.1.1、解压内核源代码文件 tar -zxf linux-2.4.18.tar.gz 2.1.2、解压后如下

2.1.3、拷贝linux,命名为linux-2.4.18 cp -r linux linux-2.4.18 2.1.4、移动config-2.4.18forMP.txt到linux-2.4.18根目录,替换掉.config 2.1.5、进入linux-2.4.18目录,配置和编译内核模块 make oldconfig make dep

linux题库填空简答及标准答案

linux题库填空简答及答案

————————————————————————————————作者:————————————————————————————————日期:

二、填空题 26. 在Linux系统中,以_文件的_方式访问设备。 27. Linux内核引导时,从文件_/etc/fstad___中读取要加载的文件系统。 28. Linux文件系统中每个文件用__i节点_____来标识。 29. 某文件的权限为:d-rw-_r--_r--,用数值形式表示该权限644,该文件属性是目录。 30. 静态路由设定后,若网络拓扑结构发生变化,需由__系统管理员___修改路由的设置。 31. 网络管理的重要任务是:__控制___和_监控_______。 32. 安装Linux系统对硬盘分区时,必须有两种分区类型:文件系统分区___ 和___交换分区________。 33. 编写的Shell程序运行前必须赋予该脚本文件__执行___权限。 二、填空题(每题2分,共20分) 1.安装Linux系统对硬盘分区时,必须有两种分区类型:Linux原始分区(根分区) 和Linux 交换分区。 2.在Linux的两种链接文件中,只能实现对文件链接的一种方式是:软链接(符号链接)。3.Linux主要采用了请求调页和写时复制 _两种动态内存管理技术实现了物理内存以On demand方式动态分配。 4.对于System V类型的共享内存页面,Linux基于__Clock____算法决定哪些页面应当被换出物理内存。 5.在Linux与中断相关的三个核心数据结构中,用做抽象的中断控制器的数据结构是_ hw_interrupt_type _____,它包含一系列处理中断控制器特有的操作。 6. 通过将_ request _____动态链入块设备控制结构blk_dev_struct,Linux设备管理器有 效的实现了物理设备和缓冲区之间的异步读写通讯。 7.将/home/stud1/wang目录做归档压缩,压缩后生成wang.tar.gz文件,并将此文件保存到/home目录下,实现此任务的tar命令格式__tar czvf wang.tar.gz /home/stud1/wang____。 8.对于给定的文件file,统计其中所有包含字符串”WHU”的行数的一条命令是_grep WHU file | wc -l 9. 对于Shell脚本程序,若输入参数数量多于9个,则程序遍历每个参数可通过使用 __shift__命令实现。 10.在System V进程通讯方式中,ipc_perm结构描述对一个系统IPC对象的存取权限,而用于定位IPC对象的引用标志符key可以依据键值分成_公有____和___私有___两种类型。 二、填空题(每空1分,共20分) 1.在Linux2.4.0版本中,进程有 ___6___ 种状态,进程使用 __exit____ 系统调用后进入僵死状态。 2.在Linux 中,管道分为 __2____ 种类型,若创建或打开管道时获得的描述符存放在fd 中,则fd[1]是 _管道写描述符_ 。 3.Linux为用户提供的接口有 shell、XWINDOW、系统调用 4.Linux在I386体系结构中支持 __两级____分页机构。 5.每个设备文件名由主设备号和从设备号描述。第二块IDE硬盘的设备名为__hdb____,它上面的第三个主分区对应的文件名是 __hdb3____ 。 6. 超级块是描述 __文件系统属性____ 信息的数据结构,索引节点是描述 __文件属性____

物联网操作系统的必备特性

物联网操作系统的必备特性 物联网所带来的机遇与挑战都是空前的。要抓住机遇,迎接挑战,是否拥有最佳的操作系统做为基础是极为关键的问题。 那么,物联网环境对操作系统提出了哪些不同于以往的需求?产品开发商采用怎样的操作系统,拥有哪些特征或技术,最有可能在物联网的发展中把握先机?基本上,今后的RTOS 不仅必须具备传统的实时性、确定性和可靠性,还必须提供高度互联、全面安全、远程管理等物联网环境所要求的全新能力。最近,风河公司推出了VxWorks7,对这套在嵌入式领域主导多年的RTOs(实时操作系统)进行了再次创新,其目标正是“物联网市场已达 实时操作系统 (The RTOS for thelnternet of Things) ”。实时性依然是物联网操作系统的必备特性 实时操作系统( RTOS,RealTimeOperation System)是指能够在确定的时间对内部或者外部的事件做出正确的响应。在实时操作系统中,进程执行结果的正确与否不仅与逻辑运算或数学计算结果的正确性相关,而且与得出这个正确结果的时间有关。也就

是说,在实时系统 中,如果一个进程的运算结果虽然 是正确的,但是由 于它完成的时间超出了给定的最后期限,那么这个结果就是毫无意义的。 例如汽车中使用的气囊。当报告车辆碰撞的传感器通知CPu 后,操作系统应快速地发出打开气囊的任务,并且不允许任何其他非实时处理进行干扰,晚一秒钟展开气囊比没有气囊的情况更糟糕,这就是一个典型的实时系统。 通常认为,实时操作系统要求速度非常快。但实际上,实时操作系统强调的不仅仅是速度,而是时间关系的次序和确定性。例如,一条货轮在码头等待各地的卡车运来货物之后装船运往海外,规定好了离港启航的时间。那么,如果有一辆卡车在货轮离港时间之后才把货物运到了码头,逻辑上它虽然完成了陆地货运任务,但已经没有任何意义了。货车行驶速度和气囊打开速度当然不可相提并论,但就它与货轮配合的时间顺序而言具有同样都是实时系统,都必须要满足的是时序确定性,而跟速度有多快不一定相关! 再例如,如果使用足够高性能的CPU,Windows 可以提供非常快的速度。但是,当某些后台任务正在运行时,有时候响应会变得非常漫长,以至于某一个简单的读取文件的任务也会很长时间无响应。并不是说Windows 不够

EPON常用命令讲解

EPON常用命令讲解 ?数据业务基本排查 ?语音业务基本排查 ?930软件脚本简介 ?其他常用命令 ?典型案例分析 数据业务基本排查 基本思路: 在PON系统内GSWC、EC2、ONU各业务环节上应保证: 配置正确 配置生效 MAC地址正确转发 ?FTTH型ONU ?FTTB型ONU 配置核查 Onu switch目录: show vlan all显示所有端口vlan; show vlan 查看交换芯片单个vlan及其所属端口的信息,如果此端口配置为出口剥离vlan,相应端口显示为UN;反之显示为VF show vlan default 显示所有端口的untag属性的vlanid; Onu Debug下相关命令: ddd show port [|all] vlan config显示系统QinQ不使能下的Fe端口vlan的配置信息show port [|all] vlan service显示系统QinQ使能下的Fe端口vlan的配置信息show port [|all] vlan translation table显示端口的软件vlan转换表 EC2 Pon目录: show qinq_config <1-2> <1-24> 查询qinq模式下ONU端口业务信息 端口检查 show port status查看交换芯片端口的状态,可以查看用户端口是否接了终端,工作模式是否正确等 查看地址转发表

ONU swtich目录 show arl查看mac地址转发表,会显示学习到的端口、vlanid和mac地址,如果用户的vlan id同时上下行数据中学到,其中26端口( CPU端口)表示下行数据正常,用户端口1-24表示上行数据正常; OLT fdb目录 show fdb slot <1-8,11-18>查看上行数据时,查看业务卡(EC2)fdb表 show fdb slot 29查看下行数据时,查看上联口fdb表 主控盘学的地址的VID应该是最外层VLAN的VID。 如果,上下行fdb表都正确,但是拨号拨不上去,可以在OL T的上连口抓包,查看进出的包内容。如果有出去的包而无回来的包,则可以判断出是上游设备出问题。 如果fdb表学习不正确,则VLAN配置有问题,可以根据fdb表的情况,先判断问题出现在哪一个设备上,再查看VLAN配置有无问题。 其他处理方式: 如时延大、丢包、组播业务等问题,可分别在EPON系统与其他系统的接口处利用抓包工具查看定位,由于上联口只能封装单层vlan,Qinq和单层vlan方式会略有差别。 FTTN型ONU 与其他ONU差异 FTTN型ONU相对其他类型ONU比较独立,对于普通的数据、语音业务,OLT相当于“透传”的通道。 配置核查: FSWB Profile目录下 创建/修改/查看ADSL2+端口模板参数: add xaplus profile ; set dsl-profile ; show dsl-profile ; 主要查看4个方面: 1.编码类型(lineCoding) 一般编码类型在开通的下行速率低于8Mb/s时采用G .dmt,大于8M时采用adsl2plusauto。 2.线路类型(channelMode) 线路类型采用interleaved更为稳定 3.训练速率(dnFastMaxTxRate,dnIntlMaxTxRate,upFastMaxTxRate,upIntlMaxTxRate) ADSL 一般最大上行可达速率为800Kb/s,下行可达速率为8Mb/s ADSL2+一般最大上行可达速率为1Mb/s,下行可达速率为28Mb/s 配置时上行速率不要超过1Mb/s,推荐640Kb/s

系统调用方式文件编程题库

Linux文件编程函数 一简述几个基本知识—— 1 Linux应用程序编程所用到的函数,主要有两种方式提供: 系统调用方式函数库方式 2 如何学习这些函数? 三步学习法: 第一步:借助工具书,查找函数名;《Unix环境高级编程》第二步:在Linux系统中,利用man命令查看函数信息,并填写函数学习手册。 第三步:实践,编写代码。 3 VI概念——文件描述符 性质:一个数字 特别含义:其功能类似于身份证号码,通过身份证号码,可以将对应的公民;在Linux系统中,每一个打开的文件,都对应一个数字,通过这个唯一的数字,可以找到这个打开的文件,并对其进行操作,比如读、写等。 二首先学习系统调用方式提供的函数—— 4 学习以下7个函数—— 打开文件创建文件关闭文件读文件写文件文件定位 复制文件描述符 5 打开文件——open 范例1:打开已经存的文件 open.c

#include #include #include void main() { int fd;/*文件描述符*/ fd = open("/home/test.c",O_RDWR); if(fd<0) printf("Open file fali!\n"); else printf("Open file sucessfully!\n"); } 范例2:利用open函数创建新文件 open_creat.c #include #include #include void main() {

操作系统教程第5版部分习题标准答案

第一章: 一、3、10、15、23、27、35 3.什么是操作系统?操作系统在计算机系统中的主要作用是什么? 操作系统是管理系统资源、控制程序执行、改善人机界面、提供各种服务,并合理组织计算机工作流程和为用户有效地使用计算机提供良好运行环境的一种系统软件. 主要作用 (1)服务用户—操作系统作为用户接口和公共服务程序 (2)进程交互—操作系统作为进程执行的控制者和协调者 (3)系统实现—操作系统作为扩展机或虚拟机 (4)资源管理—操作系统作为资源的管理者和控制者 10.试述系统调用与函数(过程)调用之间的区别。 (1)调用形式和实现方式不同; (2)被调用的代码位置不同; (3)提供方式不同 15.什么是多道程序设计?多道程序设计有什么特点? 多道程序设计是指允许多个作业(程序)同时进入计算机系统内存并执行交替计算的方法。从宏观上看是并行的,从微观上看是串行的。 (1)可以提高CPU、内存和设备的利用率; (2)可以提高系统的吞吐率,使单位时间内完成的作业数目增加; (3)可以充分发挥系统的并行性,使设备和设备之间,设备和CPU之间均可并行工作。 23.现代操作系统具有哪些基本功能?请简单叙述之。 (1)处理器管理; (2)存储管理; (3)设备管理; (4)文件管理; (5)联网与通信管理。 27.什么是操作系统的内核? 内核是一组程序模块,作为可信软件来提供支持进程并发执行的基本功能和基本操作,通常驻留在内核空间,运行于内核态,具有直接访问计算机系统硬件设备和所有内存空间的权限,是仅有的能够执行特权指令的程序。 35.简述操作系统资源管理的资源复用技术。

系统中相应地有多个进程竞争使用资源,由于计算机系统的物理资源是宝贵和稀有的,操作系统让众多进程共享物理资源,这种共享称为资源复用。 (1)时分复用共享资源从时间上分割成更小的单位供进程使用; (2)空分复用共享资源从空间上分割成更小的单位供进程使用。 . 二、2、5 2、答:画出两道程序并发执行图如下: (1) (见图中有色部分)。 (2)程序A无等待现象,但程序B有等待。程序B有等待时间段为180ms至200ms间(见 图中有色部分)。 5、答:画出三个作业并行工作图如下(图中着色部分为作业等待时间):

几种主流嵌入式操作系统分析

几种主流嵌入式操作系统分析 1.嵌入式Linux 嵌入式Linux(Embedded Linux)是指对标准Linux经过小型化裁剪处理之后,能够固化 在容量只有几KB或者几MB 字节的存储器芯片或者单片机中,是适合于特定嵌入式应用场合的专用Linux操作系统。在目前已经开发成功的嵌入式系统中,大约有一半使用的是Linux。 这与它自身的优良特性是分不开的。 嵌入式Linux 同Linux 一样,具有低成本、多种硬件平台支持、优异的性能和良好的网络支持等优点。另外,为了更好地适应嵌入式领域的开发,嵌入式Linux 还在Linux 基础上 做了部分改进,如下所示。 ? 改善的内核结构 Linux 内核采用的是整体式结构(Monolithic),整个内核是一个单独的、非常大的程序,这____________样虽然能够使系统的各个部分直接沟通,提高系统响应速度,但与嵌入式系统存储容量小、 资源有限的特点不相符合。因此,在嵌入式系统经常采用的是另一种称为微内核(Microkernel) 的体系结构,即内核本身只提供一些最基本的操作系统功能,如任务调度、内存管理、中断 处理等,而类似于文件系统和网络协议等附加功能则运行在用户空间中,并且可以根据实际 需要进行取舍。这样就大大减小了内核的体积,便于维护和移植。 ? 提高的系统实时性 由于现有的Linux 是一个通用的操作系统,虽然它也采用了许多技术来加快系统的运行 和响应速度,但从本质上来说并不是一个嵌入式实时操作系统。因此,利用Linux 作为底层 操作系统,在其上进行实时化改造,从而构建出一个具有实时处理能力的嵌入式系统,如RT-Linux 已经成功地应用于航天飞机的空间数据采集、科学仪器测控和电影特技图像处理等 各种领域。 嵌入式Linux 同Linux 一样,也有众多的版本,其中不同的版本分别针对不同的需要在内核等方面加入了特定的机制。嵌入式Linux 的主要版本如表4.1所示。 表4.1 嵌入式Linux主要版本 版本简单介绍 μCLinux 开放源码的嵌入式Linux 的典范之作。它主要是针对目标处理器没有存储管理单元 MMU,其运行稳定,具有良好的移植性和优秀的网络功能,对各种文件系统有完备 的支持,并提供标准丰富的API RT-Linux 由美国墨西哥理工学院开发的嵌入式Linux硬实时操作系统。它已有广泛的应用 Embedix 根据嵌入式应用系统的特点重新设计的Linux发行版本。它提供了超过25种的Linux 《嵌入式Linux应用程序开发详解》——第4章、嵌入式系统基础 系统服务,包括Web服务器等。此外还推出了Embedix的开发调试工具包、基于图 形界____________面的浏览器等。可以说,Embedix是一种完整的嵌入式Linux解决方案

相关文档
最新文档