操作系统学习笔记

1. 什么是操作系统?

操作系统是一种运行在内核态的软件。

它位于硬件和应用程序之间,主要用于管理计算机硬件和软件资源。比如:运行在电脑上的应用程序通过操作系统来调用内存以及磁盘等硬件。
在这里插入图片描述

2. 操作系统主要有哪些功能?

  • CPU 管理:主要是进程管理。
  • 内存管理:主要利用了虚拟内存的方式。
  • 外存管理:主要是磁盘管理。
  • I/O 管理:对输入/输出设备的管理。

3. 什么是内核?

内核是操作系统的核心,具有很高的权限,可以控制 CPU、内存、磁盘等硬件。

4. 什么是用户态和内核态?

  • 用户态:我们运行的进程基本都是运行在用户态,权限比较低。当应用程序需要执行某些需要特殊权限的操作,就需要向操作系统发起系统调用请求,进入内核态。

  • 内核态:运行在内核态的进程可以访问计算机的所有资源,权限比较高。

5. 什么是进程和线程?

  • 进程是程序的执行过程。

  • 一个进程是由多个线程组成的。

6. 进程间通信方式

  • 管道:管道可以理解成缓存,从管道的一端写数据,另一端读数据。
  • 信号 : 信号就是一种通知,通知指定进程处理信号。比如 kill -9 1050 就表示给 PID 为 1050 的进程发送 终止 信号。
  • 信号量:信号量表示资源的数量,是进程同步的一种方式,通过 PV 操作来实现。
    • P 操作,会将信号量减 1,如果信号量 < 0,说明资源被占用,进程要阻塞等待;如果信号量 >= 0,说明资源可用,进程可正常继续执行。
    • V 操作,会将信号量加 1,如果信号量 <= 0,说明有进程在阻塞队列里,会唤醒当前进程;如果信号量 > 0,说明阻塞队列里没有被阻塞的进程;
  • 消息队列:消息队列和管道差不多,能承载更多的数据。
  • Socket:用于客户端和服务器之间通过网络进行通信。

7. 什么是死锁?

假设有两个进程 A 和 B,以及两个资源 X 和 Y,它们的分配情况如下:

进程占用资源需求资源
AXY
BYX

进程 A 持有资源 X,并且请求资源 Y。

而进程 B 持有资源 Y,并且请求资源 X。

两个进程都在等待对方释放资源,无法继续执行,互相等待,陷入了死锁。

死锁就是多个进程/线程同时被阻塞、相互等待的一种状态。
在这里插入图片描述

8. 产生死锁的四个必要条件是什么?

    1. 互斥条件:一个资源每次只能被一个进程使用
    1. 请求与保持条件:一个进程持有了一个资源,又请求其他资源,而该资源被其他进程所占有,同时不释放自己持有的资源
    1. 不可剥夺条件:进程已获得的资源,在没有使用完之前,不能被其他进程抢占
    1. 循环等待条件:形成了一条资源的环形链,有一组进程 {P0, P1,…, Pn}, P0 等待的资源被 P1 占有,P1 等待的资源被 P2 占有,…

9. 解决死锁的基本方法

    1. 预防死锁:通过设置一些限制条件,去破坏产生死锁的必要条件
    1. 避免死锁:银行家算法,找出安全序列
    1. 检测死锁:进程-资源分配图
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值