- 博客(19)
- 收藏
- 关注
原创 线程与地址空间
线程,有时也被称为轻量级进程(Lightweight Process, LWP),是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一个进程可以包含多个线程,这些线程共享进程的大部分资源,比如地址空间、打开的文件描述符等,但每个线程拥有自己独立的栈空间、寄存器状态和程序计数器。与进程不同,线程间的上下文切换开销相对较小,这使得多线程程序在并发执行任务时具有更高的效率。一切进程至少都有一个执行线程Linux执行流,统一称为轻量级进程(LWP)
2025-04-15 17:20:56
747
原创 Linux进程信号
在信号处理中分别是阻塞信号集、未决信号集和信号处理函数表。它们可以统一称为信号处理相关表或进程信号状态表。阻塞信号集决定了哪些信号暂时不会被进程处理;未决信号集记录了已经产生但还未被处理的信号;信号处理函数表则规定了对于每个信号应该采取什么样的处理动作。
2025-04-14 15:15:09
980
原创 进程间通信
共享内存是一种高性能的进程间通信机制,它允许多个进程共享同一块物理内存区域,使得进程可以直接读写共享内存中的数据,从而实现高效的数据共享和通信。
2025-04-10 11:40:34
828
原创 文件系统--软硬链接/动静态库
静态库:静态库文件通常存放在系统的标准库目录(如 /usr/lib 或 /usr/local/lib)中,或者项目的特定目录下。静态库在编译时被嵌入到可执行文件中,因此在文件系统中,可执行文件是独立的,不依赖于静态库文件的存在。动态库:动态库文件也通常存放在标准库目录中。多个程序可以共享同一个动态库文件,这减少了文件系统中重复代码的存储,提高了磁盘空间的利用率。
2025-04-01 20:49:37
897
原创 linux的文件
在操作系统中,对于外设的管理,首先会通过设备描述符等数据结构来描述外设的各种属性,如设备类型、设备号、中断号、驱动程序入口地址等。然后,操作系统根据这些描述信息将外设组织到相应的设备管理队列或数据结构中,以便进行统一的管理和调度。
2025-03-29 17:53:48
1160
原创 进程深度认识(创建/等待/终止)
在操作系统里,一个进程在运行过程中可以通过特定的系统调用,放弃当前正在执行的程序,转而执行另一个新的程序。这一操作会替换掉当前进程的整个地址空间内容,包含代码、数据、堆和栈等,但进程的 PID(进程标识符)不会改变,也就是说,从外部看来,还是同一个进程在运行,只不过执行的程序变了。
2025-03-25 18:42:30
979
原创 环境变量和进程地址空间(继上回)
环境变量是操作系统中用于存储系统配置信息的动态值,它们可以影响程序的行为和运行环境。在 Linux 系统中,环境变量、Bash 进程和env数组之间存在着密切的关系,它们共同协作来为进程提供运行环境。
2025-03-21 22:53:18
785
原创 linux进程切换/调度
进程上下文是指进程执行时所需的各种环境信息,包括 CPU 寄存器的值、程序计数器、堆栈指针以及内存中的数据等。它代表了进程在某一时刻的运行状态。
2025-03-20 02:08:18
831
原创 linux进程的状态
当进程处于运行队列中时,它处于就绪状态,此时该进程具备了运行的条件,随时可以被 CPU 调度执行,一旦被 CPU 调度执行,就进入运行状态。
2025-03-17 22:10:35
848
原创 pcb——进程/多进程
父子进程的关系和特点相同点:子进程几乎是父进程的一个副本,它们共享相同的代码段,并且子进程会复制父进程的数据段、堆和栈等。例如,在调用 fork() 之前定义的变量,在子进程和父进程中都有相同的值。
2025-03-15 19:17:21
985
原创 git gbd/cgbd调试
现在学会了linux的一些工具:gcc/g++,vim,make/makefile ,我们来见识一下linux第一个进度条。
2025-03-12 19:27:00
990
1
原创 linux工具(认识和使用)
在linux下安装软件,一个通常的办法是下载到程序的源代码,并进行编译,得到可执行程序。但是这样太麻烦了,于是就衍生出了一个方法:把一些常用的软件提前编译好做成软件包(可以理解为windows上的安装程序)放在一个服务器 (我用的阿里云服务器) 上,通过包管理器可以很方便的获取到这个编译好的软件包,直接进行安装。软件包和软件包管理器就好比“app”和“应用商店”的关系。
2025-03-04 23:34:17
898
原创 linux权限管理
所有者:文件的所有者通常是创建该文件的用户。每个用户在系统中都有唯一的标识,文件的所有者就是与这个标识对应的用户。例如,用户user1创建了一个文件test.txt,那么user1就是test.txt文件的所有者。所属组:所属组是一个用户集合,文件可以被分配到某个组中。系统可以创建多个用户组,每个用户可以属于一个或多个组。文件的所属组决定了哪些用户组的成员可以按照组的权限访问该文件。比如,系统中有一个developers组,user1和user2都属于这个组,若test.txt文件的所属组为。
2025-03-03 23:41:35
628
原创 linux指令(补充)
mv命令是move的缩写,可以用来移动文件或者将文件改名(move(rename)files),是linux系统下常用的命令,经常用来备份文件或者目录。语法:mv [选项]源文件或者目录 目标文件/目录功能:1,视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录当中。2,当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。
2025-03-01 21:15:55
910
原创 编程入门及未来期望
首先将语言基础打好,再去应用到各种系统中,最后能成为一个合格的,可以自己完成全局的工程师,而不只是一个码农。哈喽,大家好,我是一名计算机专业的小白,即将开启认识,理解,应用计算机的学习之路。ps:我从小就对环境保护方面特别感兴趣,甚至写了很多关于如何处理废气,白色垃圾,污水的方案(那时候年龄太小了,不考虑实际,想出来的方法很不符合实际😭)目前我已经对以后的工作有清楚的认识,需要应聘者具备的技能等等,如下图中,是我要在大学的学习中所要达成的目标。每周单数,学习新知识,双数 ,用于实战练习。
2023-10-12 15:00:29
148
6
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人