一、进程的内存管理1、必选题1)讲述虚拟内存和物理内存按32位处理器,系统为每个进程分配一个独立的4G大小的虚拟内存空间,物理内存大小根据实际内存条大小。虚拟内存用来保护物理内存不被直接访问,进程间地址空间的隔离。用户程序运行在虚拟空间中,并和物理内存进行映射。2)阐述Linux中进程的内存分配从高地址到低地址,4G的虚拟内存分为:内核空间(1G),用户空间(3G)用户空间中依次为存放环境变量和命令行参数的空间、栈、共享内存映射区、堆、数据段和代码段。2、可选题1)讲述进程内存的段页式管理虚拟内存分成若干个段(数据段、代码段、堆、栈),段内分为若干个页(一页一般为4K),和物理内存之间映射也是按照段和页来映射的,传输数据大小单位为页。2)虚拟内存和物理内存之间如何进行映射的?通过MMU(内存管理单元)进行映射,将虚拟地址转换为物理内存。按照页的单位大小来进行数据的映射。弥补物理内存容量的不足,在硬盘上开设一块交换分区进行页的调入和调出。二、进程间通信的机制1、必选题1)讲述进程间通信的方式信号、管道、消息队列、共享内存、套接字2)讲述关于SystemVIPC对象:答:包括消息队列、共享内存和信号量,创建在内核中内核负责释放IPC对象在内核空间中有唯一性标识ID3)讲述共享内存:答:是被多个进程共享的一块物理内存共享内存是进程间共享数据的一种最快的方法共享内存不提供同步机制4)匿名管道和命名管道的区别a)匿名管道用于有关系进程(父子进程和兄弟进程)之间的通信b)命名管道可用在任何进程间的通信c)命名管道在文件系统有一个对应的管道文件d)匿名管道有pipe系统调用生成,命名管道由mkfifo系统调用产生管道文件,再通过open、read和write进行读写通信。5)在信号量集控制函数intsemctl(intsemid,intsemnum,intcmd,…/*unionsemunarg*/)中,若要对所有的信号量进行操作,则将semnum设置为:A、0B、1C、2D、3答案:A6)在进程通信中,对放置在信号量集中的所有信号量进行semop操作时是否必须都要成功?不是,可以部分成功,部分不成功。7)共享内存的同步和互斥采用什么技术来解决?进程信号量可以解决共享内存的同步和互斥。2、可选题1)阐述管道的读写特性a)管道是阻塞性的,当进程从管道中读取数据,若没有数据进程会阻塞b)当一个进程往管道中不断地写入数据但是没有进程去读取数据,此时只要管道没有满是可以的,但若管道放满数据的则会报错。c)当读一个写端已被关闭的管道时,在所有数据被读取后,read返回0。d)如果写一个读端已被关闭的管道,则产生信号SIGPIPE2)管道(pipe)默认是阻塞性的,可通过___C___方式修改为非阻塞性的A、open()B、write()C、fcntl()D、read()3)fork出一个子进程后,父进程中创建的共享内存和通过shmat系统调用映射的地址是否会被继承?答:共享内存不会被继承,映射的地址会被继承。4)讲述如何利用进程信号量和共享内存来解决读者和写者问题(一个写者一个读者,双向通知)三、OSI分层结构1、必选题1)由国际标准化组织(ISO)和国际电信联盟(ITU-T)共同提出的开放系统互连(OSI)参考模型中共有__b_层,参考模型的最高层则为___c__层。a.)4b.)7c.)应用d.)会话2)关于TCP、UDP及其上层的应用,描述错误的是____b___a.)TCP协议时面向连接的,UDP协议是面向无连接的;b.)UDP不保证数据的可靠传送,而文件的传递时要求必须无错传送的,因而所有基于文件传递的应用都不能基于UDP,如TFTP;c.)telnet是基于TCP的终端应用,连续输入的多个字符可能会被封装到一个TCP包中;d.)在同一节点上,基于TCP和UDP的应用端口号可以重叠;3)下面合法的IP地址是:(c)。A.129,1,150,115B.211.260.218.244C.192.168.192.1D.24.128.124)以太网中的ARP协议的作用根据IP地址解析出对应的MAC地址;5)TCP的3次握手的过程是什么样的答案:在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。2、可选题1)0x12345678在采用BigEndian中内存的排列顺序是__a___,在采用LittleEndian内存中的排列顺序是_c____(答案从左到右内存地址依次增加)a.)12345678b.)34127856c.)78563412d.)567812342)IP地址的编码分为哪俩部分?IP地址由两部分组成,网络号和主机号。不过是要和“子网掩码”按位与上之后才能区分哪些是网络位哪些是主机位。3)TCP/IP协议4层是什么?简述应用数据如何实现两个客户间传送?答案:TCP/IP网络协议栈分为应用层(Application)、传输层(Transport)、网络层(Network)和链路层(Link)四层。传输层及其以下的机制由内核提供,应用层由用户进程提供(后面将介绍如何使用socketAPI编写应用程序),应用程序对通讯数据的含义进行解释,而传输层及其以下处理通讯的细节,将数据从一台计算机通过一定的路径发送到另一台计算机。应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装。不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报(datagram),在链路层叫做帧(frame)。数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,最后将应用层数据交给应用程序处理。