操作系统(5)进程

news2024/12/15 1:05:10

一、定义与特点

  1. 定义:进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。

  2. 特点

    • 动态性:进程是动态创建的,有它自身的生命周期,包括创建、运行、阻塞、挂起、唤醒和终止等状态。
    • 并发性:多个进程可以在系统中并发执行,共享处理器资源。
    • 独立性:进程之间是相互独立的,一个进程无法直接访问另一个进程的内存空间。
    • 制约性:进程之间因访问共享资源或进行同步操作而产生制约关系。

二、组成

  1. 程序:进程的程序部分,包括代码、数据和指令等。
  2. 数据:进程在执行过程中所使用的数据集合。
  3. 进程控制块(PCB):PCB是进程存在的唯一标志,包含了进程的各种信息,如进程标识符、进程状态、优先级、内存地址等。PCB的作用是使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能与其他进程并发执行的进程。

三、状态与转换

  1. 创建状态:进程由创建而产生,此时进程正在申请资源并初始化。
  2. 就绪状态:进程已经获得除处理器之外的所有必要资源,等待被调度执行。
  3. 运行状态:进程正在占用处理器执行。在单处理机系统中,同一时刻只有一个进程处于运行状态;在多处理机系统中,可以有多个进程同时处于运行状态。
  4. 阻塞状态:进程因等待某种资源或事件而无法继续执行,处于暂停状态。
  5. 终止状态:进程已经执行完毕或出现异常而终止,此时进程不再占用系统资源。

四、调度与同步

  1. 进程调度:操作系统根据一定的策略选择就绪队列中的进程占用处理器执行。常见的调度算法有时间片轮转法、优先级调度法、多级反馈队列调度法等。
  2. 进程同步:为了保证多个进程在并发执行时能够正确访问共享资源,操作系统提供了进程同步机制。进程同步可以通过信号量、互斥锁、条件变量等机制来实现。

五、通信

       进程间通信(IPC)是操作系统中实现进程间数据交换和信息共享的重要机制。常见的进程间通信方式有管道、套接字、信号、信号量、共享内存等。

六、分类

     根据进程的功能和特性,可以将进程分为以下几类:

  1. 交互进程:由用户终端启动,需要与用户进行交互操作。
  2. 批处理进程:负责按顺序启动其他进程,通常用于批量处理任务。
  3. 守护进程:在后台运行,负责执行系统级任务,如系统日志、网络服务等。

七、创建与删除

  1. 进程的创建:通常通过系统调用(如fork)来创建新进程。新进程会继承父进程的某些属性和资源,并获得一个唯一的进程标识符(PID)。
  2. 进程的删除:当进程执行完毕或出现异常时,操作系统会将其终止并回收相关资源。此时,进程的PCB会被清零并返还给系统。

八、挂起与恢复

  1. 进程的挂起:操作系统可以将进程从内存转移到外存(如磁盘),以释放内存空间或满足其他需求。挂起的进程不再占用处理器资源,但可以在需要时被恢复执行。
  2. 进程的恢复:被挂起的进程可以在需要时被重新激活或重启。此时,操作系统会将其从外存加载回内存,并恢复其执行状态。

总结

       综上所述,操作系统中的进程是一个具有动态性、并发性、独立性和制约性的实体。它通过进程控制块来管理和控制自身的执行过程,并通过进程调度、同步、通信等机制与其他进程进行协作和资源共享。

 结语     

成为一个卓越的人

发自内心地追求卓越

!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2259647.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OLLAMA+FASTGPT+M3E 大模型本地化部署手记

目录 1.安装ollama 0.5.1 2.下载大模型 qwen2.5 3b 3.开启WSL 4.更新wsl 5.安装ubuntu 6.docker下载 6.1 修改docker镜像源 6.2 开启WSL integration 7.安装fastgpt 7.1 创建fastgpt文件夹 7.2 下载fastgpt配置文件 8.启动容器 9.M3E下载 9.1 下载运行命令 9.2…

[创业之路-190]:《华为战略管理法-DSTE实战体系》-2-华为DSTE战略管理体系概要

目录 一、DSTE战略管理体系与BLM的关系 1、DSTE战略管理体系概述 2、BLM模型概述 3、DSTE与BLM的关系 二、重新认识流程 1. 流程就是业务本身,流程是业务过程的可视化: 2. 流程是业务最佳路径的经验教训总结: 3. 流程是战略知识资产、…

强化学习路径规划:基于SARSA算法的移动机器人路径规划,可以更改地图大小及起始点,可以自定义障碍物,MATLAB代码

一、SARSA算法概述 SARSA(State-Action-Reward-State-Action)是一种在线强化学习算法,用于解决决策问题,特别是在部分可观测的马尔可夫决策过程(POMDPs)中。SARSA算法的核心思想是通过与环境的交互来学习一…

ABAQUS进行焊接仿真分析(含子程序)

0 前言 焊接技术作为现代制造业中的重要连接工艺,广泛应用于汽车、船舶、航空航天、能源等多个行业。焊接接头的质量和性能直接影响到结构件的安全性、可靠性和使用寿命。因此,在焊接过程中如何有效预测和优化焊接过程中的热效应、应力变化以及材料变形等问题,成为了焊接研…

electron常用方法

一,,electron设置去除顶部导航栏和menu 1,electron项目 在创建BrowserWindow实例的main.js页面添加frame:false属性 2,electron-vue项目 在src/main/index.js文件下找到创建窗口的方法(createWindow)&…

location和重定向、代理

location匹配的规则和优先级 在nginx当中,匹配的对象一般是URI来匹配 http://192.168.233.62/usr/local/nginx/html/index.html 182.168.233.61/ location匹配的分类: 多个location一旦匹配其中之一,不在匹配其他location 1、精确匹配 …

用拉普拉斯变换的方差算法实现相机自动对焦

使用拉普拉斯变换的方差来计算图像的清晰度的主要原因是拉普拉斯算子可以有效检测图像的边缘和高频细节。图像的清晰度与边缘强度和高频分量的丰富程度密切相关,以下是更详细的解释: 1. 拉普拉斯算子的作用 拉普拉斯算子是一种二阶导数算子,定义为: 它可以在图像中检测快…

【考前预习】3.计算机网络—数据链路层

往期推荐 【考前预习】2.计算机网络—物理层-CSDN博客 【考前预习】1.计算机网络概述-CSDN博客 浅谈云原生--微服务、CICD、Serverless、服务网格_云原生cicd-CSDN博客 子网掩码、网络地址、广播地址、子网划分及计算_子网广播地址-CSDN博客 浅学React和JSX-CSDN博客 目录 1.数…

【Kafka】Kafka-Eagle 和 Kafka-UI 的安装使用

前言 Kafka Eagle 提供了完善的管理页面,可以监控 Kafka 集群的整体运行情况,很方便的去管理和可视化 Kafka 集群的一些信息,例如 Broker 详情、性能指标趋势、Topic 集合、消费者信息等,在生产环境中经常使用。 一、MySQL 环境…

HCIA-Access V2.5_2_2_2网络通信基础_IP编址与路由

网络层数据封装 首先IP地址封装在网络层,它用于标识一台网络设备,其中IP地址分为两个部分,网络地址和主机地址,通过我们采用点分十进制的形式进行表示。 IP地址分类 对IP地址而言,它细分为五类,A,B,C,D,E,…

TÜLU 3: Pushing Frontiers inOpen Language Model Post-Training

模型:https://huggingface.co/allenai 技术报告:https://allenai.org/papers/tulu-3-report.pdf 数据集:https://huggingface.co/collections/allenai/tulu-3-datasets-673b8df14442393f7213f372 GitHub:https://github.com/al…

【卷积神经网络】LeNet实践

模型建立 数据初始化根据模型搭建前向传播打印模型结构 前向传播数据初始化 def __init__(self):super(LeNet, self).__init__()# 第一层卷积层:# 输入:灰度图像 (1通道,大小 28x28)# 输出:6个特征图 (大小 28x28, 通过padding2保…

ubuntu20.04复现 Leg-KILO

这里写目录标题 opencv版本问题下载3.2.0源代码进入解压后的目录创建构建目录运行 CMake 配置 配置时指定一个独立的安装目录,例如 /opt/opencv-3.2:出错: 使用多线程编译错误1: stdlib.h: 没有那个文件或目录错误2:er…

python学习笔记—7—变量拼接

1. 字符串的拼接 print(var_1 var_2) print("supercarry" "doinb") name "doinb" sex "man" score "100" print("sex:" sex " name:" name " score:" score) 注意: …

Redis - 消息队列 Stream

一、概述 消息队列 定义 消息队列模型:一种分布式系统中的消息传递方案,由消息队列、生产者和消费者组成消息队列:负责存储和管理消息的中间件,也称为消息代理(Message Broker)生产者:负责 产…

3D 生成重建034-NerfDiff借助扩散模型直接生成nerf

3D 生成重建034-NerfDiff借助扩散模型直接生成nerf 文章目录 0 论文工作1 论文方法2 实验结果 0 论文工作 感觉这个论文可能能shapE差不多同时期工作,但是shapE是生成任意种类。 本文提出了一种新颖的单图像视图合成方法NerfDiff,该方法利用神经辐射场 …

聊聊Oracle自适应查询优化

成也AQO败也AQO 因为工作的原因,我们接触到的客户大部分是金融和运营商行业,这些客户有个最大的特点是追求稳定,对于使用数据库新特性持保守的态度,不会轻易尝试某些可能会导致生产系统不稳定的新特性。上线前通常都会将一些新特…

【数据库】选择题+填空+简答

1.关于冗余数据的叙述中,不正确的是() A.冗余的存在容易破坏数据库的完整新 B.冗余的存在给数据库的维护增加困难 C.不应该在数据库中存储任何冗余数据 D.冗余数据是指由基本数据导出的数据 C 2.最终用户使用的数据视图称为(&…

Comparator.comparing 排序注意

1. 对数字型字符串排序 List<String> values new ArrayList<>();values.add("10");values.add("6");values.add("20");values.add("30");values.add("50");//方法1 &#xff08;正确的排序方法&#xff09;//倒…

R语言的数据结构-矩阵

【图书推荐】《R语言医学数据分析实践》-CSDN博客 《R语言医学数据分析实践 李丹 宋立桓 蔡伟祺 清华大学出版社9787302673484》【摘要 书评 试读】- 京东图书 (jd.com) R语言医学数据分析实践-R语言的数据结构-CSDN博客 矩阵是一个二维数组&#xff0c;矩阵中的元素都具有相…