浅谈操作系统和进程

简介: 浅谈操作系统和进程

前言

操作系统是一个软件,对下要管理硬件设备,对上要给软件运行提供稳定的运行环境。操作系统是软硬件及用户之间交互的媒介。最常见的操作系统有Windows 98,2000,xp,vista,win7,win8,win10,win11,linux,mac,ios(与mac同宗同源)。

操作系统的定位:

进程:

进程是操作系统资源分配的基本单位,每个进程都对应一些资源。一个跑起来的程序就是一个进程,进程(process)也叫做任务(task)。

      进程是一个重要的“软件资源”,是由操作系统内核负责管理的。操作系统通过“描述+组织”的方式进行管理进程,其中描述就是讲清楚都有哪些特征,组织就是通过一定的数据结构,把多个这样的基本单位串起来。操作系统基本上都是C/C++写的,使用C语言的结构体来描述进程属性,有一个名字叫做PCB(进程控制块)。通过双向链表来把多个PCB串到一起,创建一个进程,本质上就是创建一个PCB这样的结构体对象,把它插入到链表中。销毁一个进程,本质上就是把链表上的PCB节点删除掉。在任务管理器查看到进程列表,本质上就是遍历这个PCB链表。


那么PCB是怎么描述进程的特征的呢?

1.pid进程的身份标识符(唯一的数字)

2.内存指针,指向了自己的内存是哪些

3.文件描述符表,表示硬盘上的文件等资源

其中内存指针和文件描述符表描述了进程持有了哪些硬件资源。

4.进程调度相关的属性

因为CPU是有限的,但是进程数量一般地都是成百上千个,这样一个“狼多肉少”的局面,操作系统就要合理的调度这些进程(并行+并发)。

1.进程状态

就绪状态(随叫随到)、运行状态、阻塞状态(短时间内无法到CPU上执行,比如该进程在进行密集的IO操作)

2.优先级

进程也是需要分优先级的,先调用谁后调用谁,谁分配的资源多谁分配的资源少

3.上下文

操作系统在进行进程切换的时候,就需要把进程执行的“中间状态”记录下来保存,下次这个进程再被执行的时候就可以恢复到上次的状态,继续往下执行。上下文本质上就是存档的内容,进程的上下文就是CPU中各个寄存器的值,保存上下文就是把这些CPU寄存器的值记录保存到内存中,恢复上下文就是把内存中的这些寄存器值给恢复回去。

4.记账信息

操作系统统计每个进程在CPU上占用的时间和执行的指令数量,根据这个来决定下一阶段该如何调度。

进程的虚拟地址空间

程序中所获取到的内存地址,并非是真的物理内存的地址.而是经过了一层抽象,虚拟出来的地址。针对进程使用的内存空间,进行"隔离"引入了虚拟地址空间。代码里不再直接使用真实的物理地址了,而是使用虚拟的地址,由操作系统和专门的硬件设备负责进行虚拟地址到物理地址的转换。

虚拟地址空间,主要就是为了避免进程之间相互产生影响。操作系统内核发现当前这里的地址超出进程1的访问范围了,此时就直接会向进程反馈一个错误。(具体来说是发送一个SIGN SEGEMENT FAULT信号,引起进程的崩溃)。谁出了bug,谁崩溃,其他进程不受影响了


进程间通信

解决了进程间相互影响的问题。虽然进程隔离了,但是又引入了新问题,有些时候,确实进程之间,需要进行数据的交互。需要搞一个多个进程都能访问到“公共空间",基于这个公共空间来进行交互数据即可,在Java中一般会基于文件或网络来进行通信。


相关文章
|
1天前
|
存储 算法 调度
深入理解操作系统:进程管理与性能优化
【5月更文挑战第14天】 本文旨在深入探讨操作系统中的进程管理机制及其对系统性能的影响。通过分析进程调度算法、死锁问题和内存管理等关键技术,本文提出了一系列性能优化策略。文章首先介绍了进程的基本概念和状态转换,然后详细讨论了不同进程调度算法的优缺点,并针对特定场景提出了合理的选择建议。接着,文中分析了死锁的产生原因和预防措施,以及内存管理中页式和段式存储管理的比较。最后,通过实验验证了提出优化策略的有效性,并对操作系统的性能调优提供了实用的指导意义。
|
1天前
|
监控 算法 Linux
深入理解操作系统:进程管理与调度策略
【5月更文挑战第14天】 在现代计算环境中,操作系统扮演着至关重要的角色。它不仅管理着计算机硬件资源,还负责提供程序运行的环境。其中,进程管理是操作系统的核心功能之一,它涉及进程的创建、执行、监控和终止等多个方面。本文将探讨操作系统中进程管理的基本概念,并深入分析不同的进程调度策略,以展示它们如何影响系统性能和用户体验。
|
1天前
|
Linux API
【操作系统】实验七 显示进程列表
【操作系统】实验七 显示进程列表
9 1
|
1天前
|
算法 Ubuntu Linux
【操作系统原理】—— 进程调度
【操作系统原理】—— 进程调度
6 0
|
1天前
|
存储 Ubuntu Unix
【操作系统原理】—— 进程管理
【操作系统原理】—— 进程管理
5 0
|
1天前
|
算法 调度
深入理解操作系统之进程调度策略
【5月更文挑战第12天】 在多任务操作系统中,进程调度是核心功能之一,它决定了处理器资源的分配。本文将深入探讨三种主要的进程调度策略——先来先服务(FCFS)、短作业优先(SJF)和轮转(Round Robin)调度,并分析各自的性能指标、优势与局限性。通过比较它们的平均等待时间、平均周转时间和CPU利用率,我们旨在为系统设计者提供选择最合适调度策略的参考依据。
|
1天前
|
算法 Linux 调度
深入理解操作系统:进程管理与调度策略
【5月更文挑战第10天】 本文将深入探讨操作系统的核心机制之一:进程管理。我们将从进程的概念入手,解析其生命周期,进而展开对操作系统中进程调度策略的详细讨论。文中不仅涉及理论分析,还结合了现代操作系统如Linux的实际案例,以期提供一个全面而深刻的视角。通过阅读本文,读者将对操作系统如何高效地管理计算资源有更深层次的理解。
|
1天前
|
算法 调度 UED
深入理解操作系统的进程调度策略
【5月更文挑战第7天】 在现代计算机系统中,操作系统的核心职责之一是确保CPU资源的有效分配与利用。本文旨在探讨操作系统中的进程调度策略,并分析其对系统性能的影响。我们将从调度的基本概念出发,介绍几种常见的调度算法,如先来先服务、短作业优先和轮转调度等,并对它们的优缺点进行比较。此外,文章还将讨论多级反馈队列调度策略,它结合了多种调度方法的优点,以适应不同类型的工作负载。通过深入分析,本文旨在为读者提供一个清晰的框架,以理解操作系统如何管理并发执行的多个进程,以及这些管理策略如何影响系统的整体效率和响应性。
|
1天前
|
算法 调度
深入理解操作系统:进程管理与调度策略
【5月更文挑战第5天】 在现代计算机系统中,操作系统的核心职能之一是高效地管理计算机资源,尤其是处理多个并发运行的程序(进程)。本文将探讨操作系统中的进程管理机制,重点分析不同的进程调度策略及其对系统性能的影响。我们将从理论和实践的角度出发,比较各种调度算法的优劣,并提出在特定场景下如何选择最合适的调度策略。通过深入剖析进程调度的原理和实现细节,旨在为读者提供全面而深刻的认知框架,以便于更好地理解和优化操作系统的性能。
|
1天前
|
算法 调度 云计算
深入理解操作系统:进程管理与调度策略
【5月更文挑战第4天】本文将深入探讨操作系统中的关键组成部分——进程管理,以及如何通过有效的进程调度策略提升系统性能。我们将剖析进程的概念、状态转换和控制,并详细分析不同的进程调度算法,如先来先服务(FCFS)、短作业优先(SJF)和多级反馈队列(MLFQ)。文章旨在为读者提供一个清晰的框架,以理解操作系统如何处理并发任务,保证系统资源的有效利用和响应性。