- 博客(28)
- 收藏
- 关注
原创 Linux进程间通信
在操作系统中,进程之间都是互相独立的。每个进程都有自己独立的进程地址空间,因此两个进程之间无法直接通过地址空间的方式交换数据。但是如果想要实现多进程协同工作,进程间通信是必不可少的。
2025-03-08 21:04:49
975
原创 Linux 环境下的进程地址空间
当操作系统创建进程时,就需要为进程分配内存资源,内存资源就可以用来为进程存储各种变量、代码等。操作系统为进程分配的内存资源,就可以被认为是所谓的进程地址空间,它会被划分成不同的区域,用于存储不同的数据,例如堆区、栈区等。进程地址空间首先被分为和。内核空间里一般存储了进程的上下文数据,如进程PCB、页表、进程地址空间结构等。而用户空间主要用于存储进程运行过程中所用到的数据,如进程的代码段、运行过程中创建的变量等。
2025-02-24 10:50:52
607
原创 Linux系统中的环境变量简单理解
环境变量是操作系统和其它进程运行时可能需要用到的一些参数。无论是Linux系统还是Windows系统都有系统环境变量。例如,在Windows菜单中搜索环境变量,即可看到编辑系统环境变量。在Linux系统中使用 env 命令,也可以查看当前系统的环境变量。
2025-02-20 22:06:48
893
原创 Linux环境下的进程状态
在操作系统原理中,通常将进程状态划分为六种,分别是新建态、就绪态、运行态、阻塞态、挂起态和退出态。各种状态之间的切换如下图模型所示。这里简单解释一下和之间的转换。,当一个处于运行态的进程需要等待事件时,例如等待IO设备,那么该进程将从运行态变为阻塞态。当该进程所等待的事件发生后,例如IO设备被上一个进程使用完成后,那么将该进程从阻塞态转为就绪态,等待CPU调度。,由于处于阻塞态的进程被储存在内存中,当处于阻塞态的进程过多时,由于内存空间不足,需要将内存中的部分进程换出至外存,称为挂起。
2025-02-19 20:54:54
906
原创 进程概念理解
从字面意思理解,进程可以理解为进行中的程序、正在运行的程序。我们平时使用的QQ、微信、浏览器,又或是游戏、视频播放器等等,事实上都是作为进程被我们使用。例如,在 Windows 操作系统中,我们双击一个可执行文件(.exe),系统就会为这个文件创建一个进程。我们可以打开任务管理器,查看目前系统创建并正在运行的进程。,进程是操作系统分配资源的基本单位。进程运行时,操作系统需要为进程分配内存、CPU时间片等资源。
2025-02-18 22:11:24
738
原创 数据结构——栈和队列
栈和队列是两种不同的线性数据结构。这两种数据结构相比之前的基础数据结构顺序表和链表来说,特点更加突出,实用性也更强。而这两种数据结构的实现也建立在顺序表和链表的基础之上,建议先了解顺序表和链表的原理再学习栈和队列。
2023-05-27 16:51:39
1086
1
原创 数据结构——链表
链表是一种基础的线形数据结构,但是其与顺序表有着较大的差别。但是由于链表与顺序表均为线形结构,本篇将穿插对比分析它们在部分性能上的优劣性。建议萌新先学习顺序表,再来看链表。
2023-05-04 22:39:40
1213
20
原创 数据结构——顺序表
本篇为数据结构系列的第一篇文章,数据结构是一种有效地存储和管理数据的方法,在应对实际问题时的重要性不亚于算法。本系列为我在学习数据结构后对于数据结构的理解,使用的语言为C。这里提几点建议,数据结构最重要的是思想,先有思路再进行代码还原能提高学习效率,在学习时,建议多画图辅助理解,图形能更直观地表达出数据结构。
2023-04-08 23:22:58
2254
27
原创 算法基础——复杂度
算法是解决问题的一系列操作的集合。著名的计算机科学家Niklaus Wirth曾提出:算法+数据结构=程序,由此可见算法在编程中的重要地位。本篇主要讨论算法性能好坏的标准之一——复杂度。
2023-03-25 22:55:16
2593
25
原创 C语言学习笔记——数组
数组是C语言中的一种自定义数据类型,它的使用非常广泛。但是很多新手在使用数组时,经常在一些细节上出问题,导致程序崩溃或者无法编译。今天,我就来详细聊聊数组的使用和我注意到的一些细节。
2023-03-12 13:24:59
1163
41
原创 C语言学习笔记——指针(初阶)
指针可以说是C语言基础语法中最难的理解的知识之一,很多新手(包括我)刚接触指针时都觉得很难。在我之前发布的笔记中都穿插运用了指针,但是我一直没有专门出一期指针的笔记,这是因为我确实还有些细节至今还不太清楚。本篇将分享我对指针的理解,欢迎各位大佬批评指正。
2023-03-05 12:01:29
851
36
原创 C语言学习笔记——程序环境和预处理
每次我们写完代码运行的时候都会弹出来一个黑框框,这个黑框框实际上是一个可执行程序(.exe文件)。那么代码是如何被变成一个可执行文件的呢?其实这就是编译器所做的事,一起来了解了解吧。
2023-02-26 12:38:17
878
32
原创 C语言学习笔记——文件操作
在前面的学习当中,C语言的基本语法已经基本学习完毕,但是大家都会发现一个问题,我们的代码编写似乎一直是表现为一个黑框框,这与我们生活中所看到的软件似乎有着很大的区别。当然,编程语言的作用不可能仅局限于编译器的黑框框,今天我们就来看看C语言的文件操作吧!
2023-02-20 21:07:24
511
44
原创 C语言学习笔记——动态内存管理
在C语言中,若需要存储数据,则需要向内存申请空间。当我们定义一个变量时,编译器会自动向内存申请空间来储存在这个变量。这种内存管理方式有时是不便利的,它所开辟的内存空间大小是固定的。例如在VS编译器上,由于VS不支持变长数组,当我们需要根据不同情况确定不同的数组大小时较为困难。因此,C语言提供了动态内存管理用来更加灵活地管理内存空间。
2023-02-18 20:35:29
345
24
原创 C语言学习笔记——自定义数据类型
C语言为我们提供了整型,浮点型两种基础的数据类型,同时为了方便程序员完成复杂的代码,C语言还提供了三种自定义数据类型——结构体,位段,枚举和联合体。
2023-02-15 11:51:38
1329
27
原创 C语言学习笔记——字符串函数和内存函数
对于字符串的操作可以说是C语言基础学习的一大难点。C语言标准库中有许多用于处理字符串的库函数。今天我来分享一些常用的字符串函数的使用方法和原理。
2023-01-13 17:46:43
295
11
原创 C语言学习笔记——数据的存储
计算机,顾名思义,是一种用于计算的机器。要想进行计算,首先要有供计算的数据。那么今天我就来分享一下C语言中数据的存储的相关知识。
2023-01-05 09:37:24
333
12
原创 C语言学习笔记(四)循环与分支语句
为了更好地解决实际生活中出现的问题,C语言提供了循环语句和分支语句。几乎所有的问题都可以用循环和分支语句的逻辑来表达和解决。快来看看如何用C语言输出乘法口诀表把!
2022-12-01 21:01:16
504
1
原创 C语言的简单运用——扫雷(基础篇)
相信大家小时候在windows游戏菜单里都看到过扫雷,大部分人应该都玩过扫雷。我们在学习了C语言后,也可以自己编写一个C语言的扫雷游戏,让我们来看看如何实现吧!
2022-11-17 16:41:46
373
8
原创 C语言学习笔记(三)操作符(1)
本篇为我在VS环境下学习C语言的记录与笔记,包含我目前所学到的知识以及我对C语言的认识,其中可能有说法错误或用词不准确,欢迎各位指正,也欢迎一同学习C语言的同学讨论,研究和学习。
2022-10-30 23:05:56
703
2
原创 C语言学习笔记(二)函数(1)
本篇为我在VS环境下学习C语言的记录与笔记,包含我目前所学到的知识以及我对C语言的认识,其中可能有说法错误或用词不准确,欢迎各位指正,也欢迎一同学习C语言的同学讨论,研究和学习。
2022-10-26 22:55:25
502
3
原创 C语言学习笔记(一)变量与常量
本篇为我在VS环境下学习C语言的记录与笔记,包含我目前所学到的知识以及我对C语言的认识,其中可能有说法错误或用词不准确,欢迎各位指正,也欢迎一同学习C语言的同学讨论,研究和学习。
2022-10-24 22:51:12
743
原创 一位非计算机专业大一新生编程学习的开始
我是来自一个双非本科学校的大一新生,从初中开始就对编程产生浓厚的兴趣,可惜一直没有机会和条件来学习。 以前喜欢编程可能只是认为程序员非常酷,只需要坐在电脑前就可以解决很多现实问题。到现在,我才意识到编程没有那么简单,不论是刚刚开始的编程语言的学习,还是后期编程思维的训练,对我而言都是巨大的挑战。 虽然并不是计算机专业,但是我认为编程是当代年轻人需要掌握的一项不可或缺的技能。随着IT行业的不断发展,计算机技术与其它行业的结合已经成为各个行业发展的趋势。因此,我认为
2022-10-16 20:54:42
172
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人