操作系统

本文深入探讨了操作系统中的关键概念,包括进程管理、内存管理和调度算法。重点介绍了进程与线程的区别,进程调度策略,如FCFS、SJF、SRTN等,并分析了实时系统和交互式系统的调度需求。还详细讲解了内存的虚拟化、页面置换算法以及分段与分页的比较。此外,文章涵盖了Linux操作系统的基础知识,如常用命令和进程管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

持续更新

操作系统

进程管理

进程与线程

进程调度

进程同步

进程通信

线程调度

死锁

死锁必要条件

死锁检测

内存

虚拟内存

页面置换算法

分段

分段与分页比较

设备管理

磁盘调度算法

Linux

常用命令:

进程管理

僵尸进程:

孤儿进程:

Fork()会带来那些问题?

I/O


操作系统

操作系统的作用和功能

进程管理

进程与线程

1.进程和线程以及他们的区别?使用场景?

进程是资源分配的基本单位

线程是独立调度的基本单位。

区别?

  1. 拥有资源

进程是资源分配的基本单位,但是线程不拥有资源,线程可以访问隶属进程的资源。

  1. 调度

线程是独立调度的基本单位,在同一进程中,线程的切换不会引起进程切换,从一个进程中的线程切换到另一个进程中的线程时,会引起进程切换。

  1. 系统开销

由于创建或撤销进程时,系统都要为之分配或回收资源,如内存空间、I/O 设备等,所付出的开销远大于创建或撤销线程时的开销。类似地,在进行进程切换时,涉及当前执行进程 CPU 环境的保存及新调度进程 CPU 环境的设置,而线程切换时只需保存和设置少量寄存器内容,开销很小。

  1. 通信方面

线程间可以通过直接读写同一进程中的数据进行通信,但是进程通信就不可以

使用场景?

但在进程切换时,耗费资源较大,效率要差一些。但对于一些要求同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程。

进程调度

1.操作系统中进程调度的策略有哪几种?

不同环境的调度算法目标不同,因此需要针对不同环境来讨论调度算法。

1. 批处理系统

批处理系统没有太多的用户操作,在该系统中,调度算法目标是保证吞吐量和周转时间(从提交到终止的时间)。

1.1 先来先服务 first-come first-serverdFCFS

非抢占式的调度算法,按照请求的顺序进行调度。

有利于长作业,但不利于短作业,因为短作业必须一直等待前面的长作业执行完毕才能执行,而长作业又需要执行很长时间,造成了短作业等待时间过长。

1.2 短作业优先 shortest job firstSJF

非抢占式的调度算法,按估计运行时间最短的顺序进行调度。

长作业有可能会饿死,处于一直等待短作业执行完毕的状态。因为如果一直有短作业到来,那么长作业永远得不到调度。

1.3 最短剩余时间优先 shortest remaining time nextSRTN

最短作业优先的抢占式版本,按剩余运行时间的顺序进行调度。 当一个新的作业到达时,其整个运行时间与当前进程的剩余时间作比较。如果新的进程需要的时间更少,则挂起当前进程,运行新的进程。否则新的进程等待。

2. 交互式系统

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值