操作系统常见面试题

本文深入探讨了进程和线程的概念,它们之间的差异,包括独立性、地址空间和上下文切换成本。还讲解了进程同步原则和常见通信方式,如管道、消息队列、信号量和共享内存。此外,对死锁的定义、条件及解决策略进行了剖析,以及并行与并发的区别和进程调度算法的介绍。
摘要由CSDN通过智能技术生成

简单谈一谈进程和线程以及它们的区别

程序被操作系统运行起来即为进程,进程是操作系统进行资源调度和分配资源的独立单位,例如QQ

线程是进程的实体,是CPU调度的基本单位,是独立运行的基本单位,例如QQ的语音通话功能

一个进程可以包括多个线程,多个线程可以并发执行

进程有独立地址空间,线程没有

进程上下文切换开销大,线程开销小

说一下进程同步

进程同步的任务是,对多个相关进程在执行次序上进行协调,使各进程有效共享资源和合作

遵循的原则

  • 空闲让进
  • 忙则等待
  • 有限等待,避免死等
  • 让权等待,当进程不能进入自己临界区时,应当释放处理机,以免陷入忙等状态

进程通信方式有哪些

  • 管道,一种半双工的通信方式,数据单向流动

  • 消息队列,是消息的链表,存放着在内核中并由消息队列标识符标识

  • 信号量是一个计数器,控制多个进程对资源的访问,通常作为一种锁机制

  • 共享内存是映射一段能被其他进程访问的内存,这段共享内存由一个进程创建,多个进程可以访问

什么是死锁,死锁产生的条件

在两个及更多并发程序中,如果每个进程持有一种资源,并且等待着其他进程释放他们现在所保持的资源,在未改变这种状态之前都不能向前推进,此为死锁

通俗讲是两个或多个进程无限期的阻塞,互相等待的状态

死锁产生的四个条件(有一个条件不成立,则不会死锁)

  • 互斥条件
  • 请求与保持条件,一个进程因请求资源而阻塞时,对已获得资源保持不放
  • 不剥夺条件,进程获得的资源,在未完全使用完之前,不能强行剥夺
  • 循环等待条件

怎样处理死锁

预防死锁,避免死锁,检测死锁,解除死锁

并发并行的区别

​ 并行:两个或多个事件在同一时刻发生

​ 并发:两个或多个事件在同一时间间隔内发生

进程的几种状态

在这里插入图片描述

  • 就绪状态,进程获得除了处理机外所有的资源,等待分配处理机资源
  • 运行状态,
  • 阻塞状态,进程在等待某种条件,条件未满足前无法执行

几种进程调度算法

  • 先来先服务
  • 短作业优先
  • 优先权调度算法,分为抢占式和非抢占式
  • 高响应比优先调度算法,等待时间+服务时间=响应时间,响应比=响应时间/服务时间
  • 时间片轮转法
  • 多级反馈队列调度算法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值