凌阳教育
嵌入式培训系统编程部分测试试题
注:考试为闭卷,程序题需上机操作运行出结果,考试时间为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) 什么是线程的互斥和同步,程序应怎样写才能达到互斥或同步?
互斥:是指某一资源同时只允许一