操作系统 并发性
在本文中,您将了解操作系统中的并发性及其原则、问题、优点和缺点。
什么是并发性
并发性是指同时执行多个指令序列。当多个进程线程在操作系统中同时执行时,就会发生并发性。这些线程可以通过共享内存或消息传递与彼此进行交互。并发性导致资源共享,导致死锁和资源稀缺等问题。它通过处理技术(如进程协调、内存分配和执行调度)来最大化吞吐量。
并发性的原则
如今的技术,如多核处理器和并行处理,可以同时执行多个进程和线程。多个进程和线程可以访问相同的内存空间、代码中的同一声明变量,甚至读取或写入相同的文件。
无法简单地估计进程执行所需的时间,并且无法预测哪个进程将首先完成,因此无法构建用于处理并发性问题的技术。
交错和重叠进程是具有相同问题的两种类型的并发进程。无法预测执行的相对速度,以下因素决定了执行速度:
- 操作系统处理中断的方式
- 其他进程的活动
- 操作系统的调度策略
并发性的问题
并发性存在各种问题。以下是其中一些问题:
1. 定位编程错误
很难发现编程错误,因为每次执行代码时,共享组件的状态都不同,报告通常是重复的。
2. 共享全局资源
共享全局资源是困难的。如果两个进程使用全局变量并且都改变了变量的值,那么多次更改的执行顺序至关重要。
3. 锁定通道
操作系统锁定资源并阻止其他进程使用它可能效率低下。
4. 资源的最优分配
操作系统很难正确处理资源分配。
并发性问题
并发性的各种问题包括:
1. 非原子操作
不是原子操作但可被多个进程中断的操作可能会引发问题。非原子操作依赖于其他进程,而原子操作独立于其他进程运行。
2. 死锁
在并发计算中,当一个成员等待另一个成员(包括它本身)发送消息并释放锁时,就会发生死锁。软件和硬件锁常用于仲裁共享资源并在并行计算、分布式系统和多处理中实现进程同步。
3. 阻塞
阻塞的进程正在等待某个事件(如资源的可用性或完成I/O操作)。进程可能因等待资源而阻塞,而且一个进程可能长时间等待终端输入。如果需要定期更新某些数据的进程,则这将是非常不可取的。
4. 竞争条件
当软件应用的输出结果由其他不可控事件的时间或顺序决定时,发生竞争问题。竞争情况也可能发生在多线程软件中,在分布式环境中运行,或者依赖于共享资源。
5. 饥饿
并发计算中的一个问题是,一个进程连续被拒绝其需要完成工作的资源。这可能是由于调度或互斥算法中的错误引起的,但也可能是由于资源泄漏引起的。
并发系统设计经常需要开发可靠的策略来协调它们的执行,数据交换,内存分配和执行计划,以减少响应时间并最大化吞吐量。
操作系统并发的优缺点
操作系统并发的各种优点和缺点如下:
优点
1. 更好的性能
它提高了操作系统的性能。当一个应用程序只使用处理器,而另一个应用程序只使用磁盘驱动器时,同时运行这两个应用程序所需的时间少于按顺序运行它们所需的时间。
2. 更好的资源利用
它使未被一个应用程序使用的资源可以被另一个应用程序使用。
3. 运行多个应用程序
它使您能够同时运行多个应用程序。
缺点
- 需要保护多个应用程序之间的相互影响。
- 需要使用额外的技术来协调多个应用程序。
- 需要额外的性能开销和操作系统中的复杂性来在应用程序之间切换。