ToB企服应用市场:ToB评测及商务社交产业平台
标题:
嵌入式岗位面试八股文(篇三 操作体系(上))
[打印本页]
作者:
光之使者
时间:
2025-1-7 12:46
标题:
嵌入式岗位面试八股文(篇三 操作体系(上))
wx:嵌入式工程师成长日志
1.什么是进程?什么是线程?什么是协程?
进程是资源分配的基本单位,他是步伐实行是的一个实例,在步伐运行是创建
线程
是步伐实行的最小单位,是进程的一个实行流,
一个进程里包含多个线程
协程
是微线程,在子步伐内部实行,可在子步伐内部停止,转而实行别的子步伐,在适当的时候再返回来接着实行
2.进程,线程,协程的区别
进程
拥有自己的独立地点空间,每启动一个进程,
体系就会分配地点空间
,建立数据表来维护代码段,数据段,堆栈段,
进程的全局变量是不共用的
,这种开销是非常大,而
线程
是
共享进程的数据
,
利用相同的地点空间
,因此,CPU切换一个
线程的开销远小于进程
的切换
协程
实行效率极高,协程直接操作栈
基本没有内核切换的开销
,以是
上下文切换非常快;
协程不需要多线程的锁机制,因为
多个线程从属一个线程,不存在同时写辩论
3.创建进程
子进程拷贝了父进程的
数据段、堆、栈以及继续了父进程打开的文件描述符
,父进程与子进程并
不共享这些存储空间
,这是子进程对父进程相应部分存储空间的
完全复制
,实行
fork()
之后,
每个进程
均可修改
各自的栈数据以及堆段中的变量,而并
不影响另一个进程
4.进程的状态
有五种状态:创建、就绪、运行、壅闭、终止
5.进程间通信的方式
1.管道:
分为有名和无名管道,
无名管道
只能有血缘关系
的进程间通信,是半双工通信,而有名管道允许无血缘进程之间通信。
2.信号量
:是个
计数器
,用来控制多个进程对共享资源的访问,用于进程间的同步和互斥。
3.消息队列:
消息的
链接表
,放在内核中,消息队列独立于发送和吸收的进程,进程终止后,消息队列并不会消失,消息队列可以实现消息的随机查询,可以按照消息的范例读取。
4.信号:
用于
关照吸收进程某个事件已经发生
,重要作为进程间以及同一进程的不同线程间的同步手段。
5.共享内存:
共享内存就是映射一段能被其他进程访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问,
共享内存是最快的
IPC
,它往往共同其他通信机制利用,如:信号量来实现同步和通信,其原理开辟一个物理内存空间,各个进程物理地点映射到自己的虚拟地点空间,
通过虚拟地点就可以直接访问
,进而实现数据共享,共享内存是最快的通信方式,因为
少了数据的拷贝。
6.套接字
:
它可用于不同机器之间的进程通信
(其中信号量、信号、消息队列可以用来同步)
6.什么是僵尸进程,孤儿进程,守护进程
1.僵尸进程
:一个进程利用fork出一个子进程,假如子进程退出,但是父进程
没有利用
wait大概waitpid函数采取
子进程的资源,那么该进程就是僵尸进程(可以通过杀死父进程来结束僵尸进程)
2.孤儿进程
:是指
父进程异常退出
,而子进程还没退出,那么子进程就会被1号进程(init)收养
3.守护进程
:是指
后台进程
,
有意
把父进程先结束
,然后被1号进程收养
7.线程间通信方法
1.临界区:
每个线程访问临界资源的那段代码叫临界区,
每次只允许一个线程进入
临界区,进入后其他线程无法进入
2.互斥量:
采取互斥对象机制,
只有拥有互斥对象的线程才可以访问
3.信号量:
计数器,允许多个线程同时访问同一资源
4.条件变量:
通过条件变量关照操作的方式保持多线程同步
5.读写锁:
读写锁和互斥量类似,但互斥量要么是锁住状态,要么就是不加锁状态。
读写锁一次只允许一个线程写,但允许一次多个线程读
,这样效率就比互斥锁要高
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4