admin 管理员组文章数量: 1086019
2024年3月13日发(作者:getrealpath() php)
一、 进程的内存管理
1、 必选题
1) 讲述虚拟内存和物理内存
按32位处理器,系统为每个进程分配一个独立的4G大小的虚
拟内存空间,物理内存大小根据实际内存条大小。
虚拟内存用来保护物理内存不被直接访问,进程间地址空间的隔
离。用户程序运行在虚拟空间中,并和物理内存进行映射。
2) 阐述Linux中进程的内存分配
从高地址到低地址,4G的虚拟内存分为:
内核空间(1G),用户空间(3G)
用户空间中依次为存放环境变量和命令行参数的空间、栈、共享
内存映射区、堆、数据段和代码段。
2、 可选题
1)讲述进程内存的段页式管理
虚拟内存分成若干个段(数据段、代码段、堆、栈),
段内分为若干个页(一页一般为4K),和物理内存之间映射也是按照段和页来
映射的,传输数据大小单位为页。
2)虚拟内存和物理内存之间如何进行映射的?
通过MMU(内存管理单元)进行映射,将虚拟地址转换为物理
内存。
按照页的单位大小来进行数据的映射。
弥补物理内存容量的不足,在硬盘上开设一块交换分区进行页的
调入和调出。
二、 进程间通信的机制
1、 必选题
1) 讲述进程间通信的方式
信号、管道、消息队列、共享内存、套接字
2) 讲述关于System V IPC对象:
答: 包括消息队列、共享内存和信号量,
创建在内核中
内核负责释放
IPC对象在内核空间中有唯一性标识ID
3) 讲述共享内存:
答:是被多个进程共享的一块物理内存
共享内存是进程间共享数据的一种最快的方法
共享内存不提供同步机制
4) 匿名管道和命名管道的区别
a) 匿名管道用于有关系进程(父子进程和兄弟进程)之间的通
信
b) 命名管道可用在任何进程间的通信
c) 命名管道在文件系统有一个对应的管道文件
d) 匿名管道有pipe系统调用生成,命名管道由mkfifo系统调用
产生管道文件,再通过open、read和write进行读写通信。
5)在信号量集控制函数int semctl(int semid, int semnum, int cmd, …
/*union semun arg*/)中,若要对所有的信号量进行操作,则将semnum设置为:
A、 0 B、 1 C、 2 D、 3
答案: A
6) 在进程通信中,对放置在信号量集中的所有信号量进行semop操作时
是否必须都要成功?
不是,可以部分成功,部分不成功。
7) 共享内存的同步和互斥采用什么技术来解决?
进程信号量可以解决共享内存的同步和互斥。
2、 可选题
1) 阐述管道的读写特性
a) 管道是阻塞性的,当进程从管道中读取数据,若没有数据
进程会阻塞
b) 当一个进程往管道中不断地写入数据但是没有进程去读
取数据,此时只要管道没有满是可以的,但若管道放满数据的则
会报错。
c) 当读一个写端已被关闭的管道时,在所有数据被读取后,
read返回0。
d) 如果写一个读端已被关闭的管道,则产生信号SIGPIPE
2) 管道(pipe)默认是阻塞性的,可通过___C___方式修改为非阻
塞性的
A、open() B、write() C、fcntl() D、read()
3) fork出一个子进程后,父进程中创建的共享内存和通过shmat
系统调用映射的地址是否会被继承?
答:共享内存不会被继承,映射的地址会被继承。
4) 讲述如何利用进程信号量和共享内存来解决读者和写者问题
(一个写者一个读者,双向通知)
版权声明:本文标题:2.LSD面试题分类 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1710260192a564892.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论