操作系统面试题总结

什么是操作系统

操作系统本质上是一个运行在计算机上的软件程序 ,她负责系统的内存管理,硬件设备的管理,文件系统的管理以及应用程序的管理。

进程和线程和协程的区别

进程:是并发执行的程序在执行过程中分配和管理资源的基本单位
线程:是进程的一个执行单元,是进程内科调度实体。比进程更小的独立运行的基本单位
进程与线程区别:线程共享进程的地址资源空间,而进程与进程之间是独立的地址资源空间。线程共享本进程的io,cpu等资源,而进程与进程之间独立享有资源。多进程要比多线程要健壮。进程相互独立,而线程则会相互影响。
线程与携程的区别
一个线程也可以拥有多个协程。其执行过程更类似于子例程。协程避免了无意义的调度,由此可以提高性能。

进程有哪几种状态

创建状态:进程正在被创建。进程申请一个空白的pcb,并向pcb中填写用于控制和管理进程的消息,然后为进程分配运行时所必需的资源。
就绪状态:进程已经分配到除了cpu以外的所有必要资源,一旦分配到便可以立即执行。
运行状态:进程获得cpu
阻塞状态:正在执行的进程由于发生某事件(io请求,申请缓冲区失败)暂时无法继续执行的状态。
结束状态:将pcb清零并还给系统。
创建状态如果获得许可-》就绪状态,就绪状态进行进程调度就到了执行状态,执行状态时间片完就变为就绪状态,执行状态发送io请求时会变为阻塞状态,阻塞状态io完成变成就绪状态,执行状态释放资源变成终止状态

进程间的通信方式:

管道:用于父子进程之间或者兄弟之间的通信。
有名管道:可以用于没有亲缘关系之间的通信,严格遵守队列先进先出的规则。
信号:通知或者接收某个时间已经发生
消息队列:链表消息队列克服了信号承载量少,管道只能承载无格式字节流以及缓冲区大小受限等缺点。
信号量:用于多进程对共享数据的访问,主要解决与同步相关的问题并避免竞争条件。
套接字(socket) 主要用于cs通过网络进行通信。用于多进程对共享数据对象的读取,它和管道有所不同,它不以传送数据为主要目的,它主要是用来保护共享资源,使得资源在一个时刻只有一个进程独享。
共享内存:使多个进程访问同一块内存空间,不同进程之间可以看到对方数据的更新。

死锁

什么是死锁

多个进程,线程同时被阻塞,他们中的一个或者全部都在等待某个资源被释放,他们都在进行无限等待。所以程序产生死锁。

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值