iOS 面试题(三)

247 阅读1分钟

计算机系统面试题

进程和线程的区别

  • 进程: 是系统进行资源分配和调度的一个独立单位,是最小的资源管理单位。

  • 线程: 是进程的一个实体,是 CPU 调度和分派的基本单位,是最小的 CPU 执行单元。线程自己不拥有任何系统资源,但是它可以访问其隶属进程的全部资源。所以线程创建、撤销、切换的开销远小于进程,一个进程可以拥有多个线程。

进程间的通信

  • 管道(内核缓存区)、命名管道(内核缓存区,磁盘节点)、消息队列(内核,消息的链表)、信号量(计数器)、信号、共享内存(效率高)、套接字

线程间的通信

谈谈iOS面试常提及到的线程间的通信

内存区域分配

进程的几种状态以及什么条件下可以转换

  • 三态模型: 一个进程从创建而产生至撤销而消亡的整个生命周期,可以用一组状态加以划分,根据三态模型,进程的生命周期可分为如下三种进程状态:

  • 运行态(running):占有处理器正在运行;

  • 就绪态(ready):具备运行条件,等待系统分配处理器以便运行;

  • 阻塞态(blocked):不具备运行条件,正在等待某个事件的完成。

  • 处于运行态的进程由于出现等待事件而进入阻塞态,直到事件结束则由阻塞态进入就绪态,而处理器的调度策略有会引起运行态和就绪态之间的切换【比如进程被选中进入运行态,时间片用完进入就绪态】