嵌入式面试题-系统题

1. 简述gcc编译过程

①预处理--以#开头的命令

gcc -E main.c -o main.i

②转汇编(编译)

gcc -S main.i -o main.s

③汇编(转二进制)

as main.s -o main.o

④链接--链接库

gcc main.o -o main -l库名

2.死锁的原因、条件

系统资源不足。在这种情况下,进程的资源请求可能无法得到满足,导致死锁。

进程运行推进的顺序不合适,或者由于进程运行推进顺序与速度不同,也可能导致死锁。

资源分配不当也是死锁的原因之一。

产生死锁的四个必要条件如下:

互斥条件:一个资源每次只能被一个进程使用。

请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。

不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。

循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。

只要上述条件之一不满足,就不会发生死锁,而只要系统发生死锁,这些条件必然成立。

3.什么是进程(Process),线程(Thread),有什么区别

进程是操作系统中分配资源和调度的基本单位一个程序至少要开启一个进程,进程是由进程控制块(PCB)、程序段、数据段三部分组成。一个进程可以包含多个线程这些线程共享进程的地址空间和资源,并且通过同步机制来协调对共享资源的访问。

线程是进程的基本执行单元,是处理器调度的最小单位。一个进程中的每个线程都有自己的线程控制块(TCB)、指令指针(IP)、栈和寄存器组。每个线程有自己的堆栈线程的调度由操作系统负责,当一个线程完成了一次调度后,它将返回自己的进程空间,从而执行该进程的其他线程。

以下是进程和线程的区别&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值