日志参数含义
一
-
学习率相关
- base_lr:基础学习率,初始设定的学习率
-lr:当前实际使用的学习率,通常是 base_lr 经过学习率调整策略后的值,比如lr=base_lr*(1+start_factor)
- base_lr:基础学习率,初始设定的学习率
-
时间统计
- time:每次迭代总时间,单位是s
- data_time:数据加载时间,单位是s
-
性能指标
- loss:总损失值
- loss_cls:分类损失值:
- top1_acc:单次batch的准确率
- top5_acc:单次batch的准确率
-
训练进度
- epoch: 当前训练轮次
- iter:当前迭代次数,表示模型训练过程中已经处理了多少批数据,等于data_num/batch_size
- memory: GPU显存使用量(MB),50%最佳(当memory显示50时,总使用显存往往占整个显存的70%左右)
- step:表示优化器更新参数的次数,在常规训练中,每个迭代都会更新一次参数,此时与 iter 相同,但在一些特殊情况下可能不同,比如,梯度累积时,多个 iter 才会执行一次 step,分布式训练时,step 可能与 iter 不同步
二
早停一般patience=max_epochs/10~max_epochs/10+5
ann_file_test = '/hy-tmp/test_split1.txt'
ann_file_train = '/hy-tmp/train_split1.txt'
ann_file_val = '/hy-tmp/val_split1.txt'
auto_scale_lr = dict(base_batch_size=64, enable=False)
data_root = '/hy-tmp/hy-tmp/hmdb51_sta/hmdb51_sta'
data_root_val = '/hy-tmp/hy-tmp/hmdb51_sta/hmdb51_sta'
dataset_type = 'VideoDataset'
default_hooks = dict(checkpoint=dict(interval=1, max_keep_ckpts=10, save_best='auto',type='CheckpointHook'),early_stopping=dict(min_delta=0.001,monitor='acc/top1',patience=1,rule='greater',type='EarlyStoppingHook'),logger=dict(ignore_last=False, interval=100, type='LoggerHook'),param_scheduler=dict(type='ParamSchedulerHook'),runtime_info=dict(type='RuntimeInfoHook'),sampler_seed=dict(type='DistSamplerSeedHook'),sync_buffers=dict(type='SyncBuffersHook'),timer=dict(type='IterTimerHook'))
default_scope = 'mmaction'
env_cfg = dict(cudnn_benchmark=False,dist_cfg=dict(backend='nccl'),mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0))
file_client_args = dict(io_backend='disk')
launcher = 'none'
load_from = '/hy-tmp/mmaction2-main/work_dirs/my_swin-tiny-p244-w877_no-pre_8xb8-amp-32x2x1-30e_hmdb51-rgb/epoch_25.pth'
log_level = 'INFO'
log_processor = dict(by_epoch=True, type='LogProcessor', window_size=20)
model = dict(backbone=dict(arch='tiny',attn_drop_rate=0.0,drop_path_rate=0.1,drop_rate=0.0,mlp_ratio=4.0,patch_norm=True,patch_size=(2,4,4,),pretrained=None,pretrained2d=None,qk_scale=None,qkv_bias=True,type='SwinTransformer3D',window_size=(8,7,7,)),cls_head=dict(average_clips='prob',dropout_ratio=0.5,in_channels=768,num_classes=102,spatial_type='avg',type='I3DHead'),data_preprocessor=dict(format_shape='NCTHW',mean=[123.675,116.28,103.53,],std=[58.395,57.12,57.375,],type='ActionDataPreprocessor'),type='Recognizer3D')
optim_wrapper = dict(constructor='SwinOptimWrapperConstructor',optimizer=dict(betas=(0.9,0.999,), lr=0.001, type='AdamW', weight_decay=0.02),paramwise_cfg=dict(absolute_pos_embed=dict(decay_mult=0.0),backbone=dict(lr_mult=0.1),norm=dict(decay_mult=0.0),relative_position_bias_table=dict(decay_mult=0.0)),type='AmpOptimWrapper')
param_scheduler = [dict(begin=0,by_epoch=True,convert_to_iter_based=True,end=2.5,start_factor=0.1,type='LinearLR'),dict(T_max=26,begin=0,by_epoch=True,end=150,eta_min=0,type='CosineAnnealingLR'),
]
randomness = dict(deterministic=False, diff_rank_seed=False, seed=None)
resume = True
test_cfg = dict(type='TestLoop')
test_dataloader = dict(batch_size=1,dataset=dict(ann_file='/hy-tmp/test_split1.txt',data_prefix=dict(video='/hy-tmp/hy-tmp/hmdb51_sta/hmdb51_sta'),pipeline=[dict(io_backend='disk', type='DecordInit'),dict(clip_len=32,frame_interval=2,num_clips=4,test_mode=True,type='SampleFrames'),dict(type='DecordDecode'),dict(scale=(-1,224,), type='Resize'),dict(crop_size=224, type='ThreeCrop'),dict(input_format='NCTHW', type='FormatShape'),dict(type='PackActionInputs'),],test_mode=True,type='VideoDataset'),num_workers=8,persistent_workers=True,sampler=dict(shuffle=False, type='DefaultSampler'))
test_evaluator = dict(type='AccMetric')
test_pipeline = [dict(io_backend='disk', type='DecordInit'),dict(clip_len=32,frame_interval=2,num_clips=4,test_mode=True,type='SampleFrames'),dict(type='DecordDecode'),dict(scale=(-1,224,), type='Resize'),dict(crop_size=224, type='ThreeCrop'),dict(input_format='NCTHW', type='FormatShape'),dict(type='PackActionInputs'),
]
train_cfg = dict(max_epochs=26, type='EpochBasedTrainLoop', val_begin=1, val_interval=1)
train_dataloader = dict(batch_size=4,dataset=dict(ann_file='/hy-tmp/train_split1.txt',data_prefix=dict(video='/hy-tmp/hy-tmp/hmdb51_sta/hmdb51_sta'),pipeline=[dict(io_backend='disk', type='DecordInit'),dict(clip_len=3, frame_interval=2, num_clips=1,type='SampleFrames'),dict(type='DecordDecode'),dict(scale=(-1,256,), type='Resize'),dict(type='RandomResizedCrop'),dict(keep_ratio=False, scale=(224,224,), type='Resize'),dict(flip_ratio=0.5, type='Flip'),dict(input_format='NCTHW', type='FormatShape'),dict(type='PackActionInputs'),],type='VideoDataset'),num_workers=8,persistent_workers=True,sampler=dict(shuffle=True, type='DefaultSampler'))
train_pipeline = [dict(io_backend='disk', type='DecordInit'),dict(clip_len=3, frame_interval=2, num_clips=1, type='SampleFrames'),dict(type='DecordDecode'),dict(scale=(-1,256,), type='Resize'),dict(type='RandomResizedCrop'),dict(keep_ratio=False, scale=(224,224,), type='Resize'),dict(flip_ratio=0.5, type='Flip'),dict(input_format='NCTHW', type='FormatShape'),dict(type='PackActionInputs'),
]
val_cfg = dict(type='ValLoop')
val_dataloader = dict(batch_size=4,dataset=dict(ann_file='/hy-tmp/val_split1.txt',data_prefix=dict(video='/hy-tmp/hy-tmp/hmdb51_sta/hmdb51_sta'),pipeline=[dict(io_backend='disk', type='DecordInit'),dict(clip_len=3,frame_interval=2,num_clips=1,test_mode=True,type='SampleFrames'),dict(type='DecordDecode'),dict(scale=(-1,256,), type='Resize'),dict(crop_size=224, type='CenterCrop'),dict(input_format='NCTHW', type='FormatShape'),dict(type='PackActionInputs'),],test_mode=True,type='VideoDataset'),num_workers=8,persistent_workers=True,sampler=dict(shuffle=False, type='DefaultSampler'))
val_evaluator = dict(type='AccMetric')
val_pipeline = [dict(io_backend='disk', type='DecordInit'),dict(clip_len=3,frame_interval=2,num_clips=1,test_mode=True,type='SampleFrames'),dict(type='DecordDecode'),dict(scale=(-1,256,), type='Resize'),dict(crop_size=224, type='CenterCrop'),dict(input_format='NCTHW', type='FormatShape'),dict(type='PackActionInputs'),
]
vis_backends = [dict(type='LocalVisBackend'),
]
visualizer = dict(type='ActionVisualizer', vis_backends=[dict(type='LocalVisBackend'),])
work_dir = './work_dirs/my_swin-tiny-p244-w877_no-pre_8xb8-amp-32x2x1-30e_hmdb51-rgb'
相关文章:
日志参数含义
一 学习率相关 base_lr:基础学习率,初始设定的学习率 -lr:当前实际使用的学习率,通常是 base_lr 经过学习率调整策略后的值,比如lrbase_lr*(1start_factor) 时间统计 time:每次迭代总时间,单位…...
[Linux]安装吧!我的软件包管理器!
一、常见安装方式 在 Linux 中,有 3 种常见的软件安装方式: (1)yam、apt (2).rpm 安装包安装 (3)源码安装 二、什么是软件包 在 Linux 下安装软件,通常的办法是下载…...
Flink 作业提交流程
Apache Flink 的 作业提交流程(Job Submission Process) 是指从用户编写完 Flink 应用程序,到最终在 Flink 集群上运行并执行任务的整个过程。它涉及多个组件之间的交互,包括客户端、JobManager、TaskManager 和 ResourceManager。…...
牛客网NC276110题解:小红的数组重排
牛客网NC276110题解:小红的数组重排 题目解析 算法思路 对数组进行排序(非降序)检查特殊情况: 如果存在三个连续相等的元素,则无解如果前两个元素都是0,则无解 若不存在特殊情况,则排序后的数…...
从零启动 Elasticsearch
elastic 有弹力的 ElaticSearch (ES)是一个基于 Lucene 的分布式全文检索引擎。可以做到近乎实时地存储、检索数据,并且本身具有良好的扩展性,可以扩展到上百台服务器,处理PB级别(1 Petabyte 1024TB&…...
nginx服务器实验
1.实验要求 1)在Nginx服务器上搭建LNMP服务,并且能够对外提供Discuz论坛服务。 在Web1、Web2服务器上搭建Tomcat 服务。 2)为nginx服务配置虚拟主机,新增两个域名 www.kgc.com 和 www.benet.com,使用http://www.kgc.…...
王树森推荐系统公开课 排序02:Multi-gate Mixture-of-Experts (MMoE)
专家模型 与上一节相同,模型的输入是一个向量,包含用户特征、物品特征、统计特征、场景特征,把向量输入三个神经网络,三个神经网络都是由很多全连接层组成,但是并不共享参数,三个神经网络各输出一个向量&a…...
【OpenCV基础 1】几何变换、形态学处理、阈值分割、区域提取和脱敏处理
目录 一、图像几何变化 1、对图片进行放大、缩小、水平放大和垂直放大 2、旋转、缩放、控制画布大小 二、图像形态学处理 1、梯度运算 2、闭运算 3、礼帽运算 4、黑帽运算 三、图像阈值分割 1、二值化处理 2、反二值化处理 3、截断阈值处理 4、超阈值零处理 5、低…...
代码随想录算法训练营 Day49 图论Ⅰ 深度优先与广度优先
图论 基础 图的概念 图的概念 概念清单有向图 (a)无向图 (b)有向/无向如图 a 所示每条边有指向如图 b 所示每条边没有箭头指向权值每条边的权值每条边的权值度-有几条边连到该节点 (eg V 2 V_2 V2 度为 3)入度/出度出度:从该节点出发的边个数入度:…...
LG P9844 [ICPC 2021 Nanjing R] Paimon Segment Tree Solution
Description 给定序列 a ( a 1 , a 2 , ⋯ , a n ) a(a_1,a_2,\cdots,a_n) a(a1,a2,⋯,an),有 m m m 次修改 ( l , r , v ) (l,r,v) (l,r,v): 对每个 i ∈ [ l , r ] i\in[l,r] i∈[l,r],令 a i ← a i v a_i\gets a_iv ai←…...
PyTorch音频处理技术及应用研究:从特征提取到相似度分析
文章目录 音频处理技术及应用音频处理技术音视频摘要技术音频识别及应用 梅尔频率倒谱系数音频特征尔频率倒谱系数简介及参数提取过程音频处理快速傅里叶变换(FFT)能量谱处理离散余弦转换 练习案例:音频建模加载音频数据源波形变换的类型绘制波形频谱图波形Mu-Law 编…...
【IPMV】图像处理与机器视觉:Lec10 Edges and Lines
【IPMV】图像处理与机器视觉:Lec10 Edges and Lines 本系列为2025年同济大学自动化专业**图像处理与机器视觉**课程笔记 Lecturer: Rui Fan、Yanchao Dong Lec0 Course Description Lec3 Perspective Transformation Lec7 Image Filtering Lec8 Image Pyramid …...
Elasticsearch 初步认识
Elasticsearch 初步认识 1 索引(index) 索引是具有相同结构的文档集合。例如,可以有一个客户信息的索引,包括一个产品目录的索引,一个订单数据的索引。在系统上索引的名字全部小写,通过这个名字可以用来执…...
数据库DDL
数据库DDL(数据定义语言)全面解析 一、DDL定义 DDL(Data Definition Language,数据定义语言)是SQL语言的一个子集,专门用于定义和管理数据库结构。它允许数据库管理员和开发人员创建、修改和删除数据库对象…...
企业级小程序APP用户数据查询系统安全脆弱性分析及纵深防御体系构建
一、用户数据查询系统安全现状分析 1.1 业务场景风险建模 在企业小程序用户数据查询业务中,普遍存在以下安全风险点: ①输入验证缺失:未对姓名、身份证号等关键输入进行严格的格式校验与合法性检查 ②身份认证薄弱:仅依赖基础参数…...
互联网大厂Java面试:从Spring Boot到微服务架构的技术深挖
场景描述 在某互联网大厂的面试会议室里,严肃的面试官老王正审视着面前的程序员明哥。这场面试以业务场景为切入点,围绕Java技术栈展开。 第一轮:基础知识与Spring生态 面试官老王: 明哥,你对Spring Boot的核心功能…...
23种设计模式解释+记忆
一、创建型模式(5种)—— “怎么造对象?” 单例模式(Singleton) 场景:公司的CEO只能有一个。 核心:确保一个类只有一个实例,全局访问。 关键词:唯一、全局访问。 工厂方…...
逻辑与非逻辑的弥聚
非逻辑弥聚与逻辑弥聚是复杂系统中两种不同的信息整合方式。逻辑弥聚侧重于通过明确的规则、规律和结构化方法,将分散的信息或功能进行有序的组织和集中处理,强调理性和确定性。而非逻辑弥聚则更多地涉及情感、直觉、经验等非线性、非结构化的因素&#…...
Python 从列表中删除值的多种实用方法详解
# Python 从列表中删除值的多种实用方法详解 在Python编程中,列表(List)是一种常用的数据结构,具有动态可变的特性。当我们需要从列表中删除元素时,根据不同的场景(如按值删除、按索引删除、批量删除等&…...
C++多线程数据错乱
C多线程数据错乱(也称为线程安全问题或数据竞争)主要是由于多个线程在没有正确同步的情况下,并发访问和修改共享数据导致的。其主要原因包括以下几个方面: 一、线程交替执行导致的非原子操作 线程在执行时,可能会在中途被挂起&a…...
StarRocks Community Monthly Newsletter (Apr)
版本动态 3.4.3 版本更新 核心功能升级 Routine Load和Stream Load新增Lambda表达式支持,支持复杂的列数据提取 增强JSON数据处理能力,支持将JSON Array/Object转为ARRAY/MAP类型 优化information_schema.task_runs视图查询,新增LIMIT支持…...
延时双删-争议与我的思路-001
目录 概括大概思路目的场景思路一退货时间差 思路2思路3 最后 概括 延时双删,是指在代码中删除两次缓存. 第一次自己访问,先删除.之后直接访问数据库获得数据 第二次是指 在第一步之后,在删除一次缓存的数据 大概思路 不进行延时双删的.寻找别的解决方法 目的 主要是为了…...
Tomcat简述介绍
文章目录 Web服务器Tomcat的作用Tomcat分析目录结构 Web服务器 Web服务器的作用是接收客户端的请求,给客户端作出响应。 知名Java Web服务器 Tomcat(Apache):用来开发学习使用;免费,开源JBoss࿰…...
掌握版本控制从本地到分布式
一、什么是版本控制? 版本控制是一种记录文件(尤其是源代码)在“时间轴”上变更的系统,主要功能包括: 历史回溯:随时恢复到任意版本的代码或文档;差异比较:查看两个版本之间的改动…...
Linux `touch` 命令深度解析与高阶应用指南
Linux `touch` 命令深度解析与高阶应用指南 一、核心功能解析1. 基本作用2. 与类似操作对比二、选项系统详解1. 基础选项说明2. 时间格式说明三、高阶应用技巧1. 时间戳控制2. 批量文件操作3. 特殊文件处理四、企业级应用场景1. 日志系统维护2. 持续集成系统3. 安全审计跟踪五、…...
Django学习
1:在PyCharm终端: # 查看已安装的Django版本 python -m django --version # 或 pip show django # 卸载当前Django pip uninstall django# 安装指定版本(例如Django 3.2.10) pip install django3.2.10 2. 检查Python版本兼容性 …...
Java IO框架
I/O框架 流 流的分类: 按方向: 输入流:将存储设备的内容读入到内存中 输出流:将内存的内容写入到存储设备中 按单位: 字节流:以字节为单位,可以读取所有数据 字符流:以字符为单…...
Spring AI Alibaba集成阿里云百炼大模型
1.准备工作 开发环境:JDK17、SpringBoot3.x 2.引入maven依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance&q…...
5月18总结
一.算法题总结 1. 解题思路:对于这个题,我最开始想到就是二分,但是头痛的是有三个解,如果我在-100到100之间二分,那么只能得出一个解,然后我就想了一下,这个要求精度,那么0.01这么小…...
动态规划(4)可视化理解:图形化思考
引言 动态规划作为一种强大的算法设计范式,其抽象性常常使初学者感到困惑。许多学习者在理解状态定义、状态转移方程和递归结构时遇到困难,这些困难往往源于动态规划问题的高度抽象性和复杂性。然而,人类的大脑天生擅长处理视觉信息,通过将抽象的动态规划概念转化为直观的…...
2025年- H31-Lc139- 242.回文链表(快慢指针)---java版--需2刷
1.题目描述 2.思路 (1)将链表取中位数,分为左右两部分。 (2)右半部分的元素进行反转链表,能达到O(1)的空间复杂度 (3)再判断左右部分的元素,是否…...
云原生安全:IaaS安全全解析(从基础到实践)
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念:IaaS的核心价值与安全边界 1.1 什么是IaaS? 基础设施即服务(Infrastructure as a Service)是云计算的基础层,提供虚拟机、存储、网络等基础资源。用户通过…...
【AGI】大模型微调数据集准备
【AGI】大模型微调数据集准备 (1)模型内置特殊字符及提示词模板(2)带有系统提示和Function calling微调数据集格式(3)带有思考过程的微调数据集结构(4)Qwen3混合推理模型构造微调数据…...
二分算法的介绍简单易懂
目录 1.概论 2.朴素的二分算法 3.求左端点的二分算法和求右端点的二分算法 4.总结 1.概论 要想了解什么是二分算法,我们就要知道什么是二分算法,二分算法是根据数组的规律,每次查找的数据原来的效率可能要O(n),而我…...
Trae IDE和VSCode Trae插件初探
Trae IDE初探 输入以下提示词: 生成一个to do list清单web页面,采用vue实现,可以在页面上进行todolist进行增删改查。 VSCode Trae插件初探 trae vscode插件初探 tips:如果还是提示找不到npm命令,重启vscode即可&am…...
数据结构 -- 树形查找(三)红黑树
红黑树 为什么要发明红黑树 平衡二叉树AVL:插入/删除很容易破坏平衡性,需要频繁调整树的形态。如:插入操作导致不平衡,则需要先计算平衡因子,找到最小不平衡子树(时间开销大),在进行…...
Mac 在恢复模式下出现 旋转地球图标 但进度非常缓慢
如果您的 Mac 在恢复模式下出现 旋转地球图标 但进度非常缓慢,可能是由于网络连接或系统恢复机制的问题。以下是详细的解决方案: 1. 检查网络连接 • Wi-Fi 信号:确保您的 Wi-Fi 信号稳定,建议靠近路由器或使用有线网络ÿ…...
【YOLO(txt)格式转VOC(xml)格式数据集】以及【制作VOC格式数据集 】
1.txt—>xml转化代码 如果我们手里只有YOLO标签的数据集,我们要进行VOC格式数据集的制作首先要进行标签的转化,以下是标签转化的脚本。 其中picPath为图片所在文件夹路径; txtPath为你的YOLO标签对应的txt文件所在路径; xmlPa…...
【信息系统项目管理师】第8章:项目整合管理 - 39个经典题目及详解
更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 【第1题】【第2题】【第3题】【第4题】【第5题】【第6题】【第7题】【第8题】【第9题】【第10题】【第11题】【第12题】【第13题】【第14题】【第15题】【第16题】【第17题】【第18题】【第19题】【第20题】【第…...
“Cloud Native English“云原生时代下的微服务架构设计:从理论到实战全解析
前引 :技术演进与架构变革的必然性 在数字经济高速发展的今天,软件系统的复杂度呈指数级增长。传统单体架构已无法满足高并发、弹性扩展和快速迭代的需求。根据Gartner预测,到2026年全球75%的企业将完成微服务架构改造。本文将深入探讨云原生…...
自由学习记录(61)
使用了 #pragma multi_compile_fwdbase 这条编译指令启用了 Unity 内部用于主光源阴影支持的一组关键词变体,如: SHADOWS_SCREEN(屏幕空间阴影贴图) SHADOWS_DEPTH(深度图阴影) SHADOWS_SOFT(…...
深入了解linux系统—— 基础IO(下)
前言 在基础IO(上)中,我们了解了文件相关的系统调用;以及文件描述符是什么,和操作系统是如何将被打开的文件管理起来的。 本篇文章来继续学习文件相关的知识 重定向 在了解重定向之前,我们先来看这样的…...
Flink Table SQL
Apache Flink 提供了强大的 Table API 和 SQL 接口,用于统一处理批数据和流数据。它们为开发者提供了类 SQL 的编程方式,简化了复杂的数据处理逻辑,并支持与外部系统集成。 🧩 一、Flink Table & SQL 核心概念 概念描述Table…...
【Git】基本操作
【简介】 Git是一种“版本控制器”, 可以用于记录每次的修改以及版本的迭代 其可以控制电脑上所有格式的文件,方便地查看文件的每个小修改版本都修改了什么内容,但前提条件是被管理的文件需要放在对应的git仓库(又名“版本库”&…...
【八股战神篇】MySQL高频面试题
目录 专栏简介 一 什么是索引 延伸 1 索引的底层使用的是什么数据结构? 2 MySQL 索引分类有哪些? 3 什么字段适合创建索引? 4 索引失效的场景 5 什么是最左匹配原则? 二 为什么 InnoDB 存储引擎选用 B 树而不是 B 树呢&a…...
服务器防文件上传手写waf
一、waf的目录结构,根据自己目录情况进行修改 二、创建文件夹以及文件 sudo mkdir -p /www/server/waf-monitor sudo mkdir -p /www/server/waf-monitor/quarantine #创建文件夹 chmod 755 /www/server/waf-monitor #赋权cd /www/server/waf-monitor/touch waf-m…...
ElasticSearch-集群
本篇文章依据ElasticSearch权威指南进行实操和记录 1,空集群 即不包含任何节点的集群 集群大多数分为两类,主节点和数据节点 主节点 职责:主节点负责管理集群的状态,例如分配分片、添加和删除节点、监控节点故障等。它们不直接…...
Android开发——原生渲染方案实现 PDF 预览功能
Android开发——原生渲染方案实现 PDF 预览功能 1. 引言2. 原生渲染方案核心设计:从数据到视图3. 混合文档容器:ViewPager2 与适配器设计1. 引言 在移动应用开发中,PDF 预览是文档处理场景的核心需求之一。Android 生态提供了多元化的技术方案,从系统级简版预览到原生渲染…...
Java求职者面试:从Spring Boot到微服务的技术点解析
Java求职者面试:从Spring Boot到微服务的技术点解析 场景:互联网医疗-预约挂号系统 面试官: “小明,我们今天的场景是一个互联网医疗的预约挂号系统。我们需要支持高并发的用户预约操作,同时保证数据一致性和系统的高…...
操作系统听课笔记之进程的概念
引入新的概念,为什么不能叫程序 内存中进程Image实例: stack: 局部变量(函数弹出来没有了) data: 全局变量(共享) 静态变量 heap: malloc分配的内存 从数据结构和算法角度解决问题: 设计相应的数据结构和设计算法 数据结构: 进程PCB 算法:创建进程和进程通信各种操作在线内…...