logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

【Linux】进程(2):进程概念与操作理解

进程 = 内核数据结构(task_struct) + 自己的程序代码和数据内核数据结构(struct task_struct):这是进程的 “学籍信息”,包含了进程的 PID、优先级、内存地址、状态等元数据,是操作系统管理进程的核心。程序的代码和数据:这是进程的 “本人”,即被加载到内存中的可执行程序内容。传统教材常说:“运行起来的程序就是进程” 或 “加载到内存的程序叫做进程”。但是这种说法只强

文章图片
#linux#运维#服务器
【Linux】进程(3):进程状态

这就保护了正在执行关键I/O的进程,防止被OS误删,避免了类似银行账单丢失的事故。s状态属于操作系统中的阻塞状态(例如前面讲到的最典型的阻塞状态:代码中里有一行scanf输入代码,不输入时就会卡住),s状态时,可以用crtl+c或者kill-9杀掉,所以把s状态叫做。进程的退出状态必须被维持下去,因为它要告诉关心它的进程(父进程),你交给我的任务,我办的怎么样了。键盘属于硬件,操作系统管理硬件也要

文章图片
#linux#运维#服务器
【Linux】进程(6):程序地址空间

我们通过一个故事来理解:有一个大富翁,他有很多很多的钱,大概有十个亿。他给他的每一个私生子都画饼说:我的这笔钱以后都由你继承(私生子互相不知道对方的存在),那么这个时候就会让私生子产生一种错觉:我独占资源---为什么后面介绍在这个里面:大富翁就是操作系统,十个亿就是内存,私生子就是进程,画的饼就是虚拟地址空间画饼的原因:操作系统想要进程有独占系统空间的错觉(原因见标题六)那么画的饼本身需不需要被管

文章图片
#linux#运维#服务器
【Linux】进程控制(1):进程创建&&进程终止

目录一 进程创建1 知识点回顾(1)fork函数初识(2)fork函数的返回值(3)写时拷贝(4)fork的常用用法(5)fork调用失败的原因2 写时拷贝(1) 写时拷贝的原理--->部分(2)为什么要有写时拷贝3 关于进程创建的实际应用场景二 进程终止1 进程终止的几种情况(1)怎么知道代码跑完了,结果正不正确?(2)代码没跑完,异常了,怎么去衡量异常?(3)结论2 进程常见的退出方法(1)e

文章图片
#linux#运维#服务器
【Linux】库的制作与使用(2)ELF&&静态链接

Section 合并程序编译、链接阶段,编译器会将代码段(.text)、数据段(.data)、BSS 段等不同section(段)进行合并,形成连续的指令和数据块,这是地址分配的基础。统一编址合并后的可执行程序会进行统一编址,包含两种方式:绝对编址:直接给指令 / 数据分配固定的虚拟地址(如起始地址设为 0x00000000);相对编址:以某个基准点(如函数起始地址)为参考,用偏移量表示地址,笔记

文章图片
#linux#运维#服务器
【Linux】进程间通信(1)管道&&进程池实现

进程间通信指的就是两个或多个进程,进行互相传递信息的过程进程具有独立性-->进程=内核数据结构+代码和数据,要规避进程之间的耦合关系所以,至少在目前,一个进程把自己的数据,发送给另一个进程也是一件比较困难的事但是父进程的全局变量不是能交给子进程吗?但是这不是通信,是父给子的,且只能给全局变量,所以只能叫做继承数据,无法做到持续性通信管道是Unix中最古老的进程间通信的形式。我们把从一个进程连接到另

文章图片
#linux#运维#服务器
【Linux】进程间通信(3)system V信号量

理解:电影院有很多座位,是被所有人共享的,但是很少有人因为座位争执,是因为保证了资源可控,每个人都有份;当我们想看电影的时候,要先申请资源,也就是座位,那这个座位真正属于的时候是什么时候?但实际上,由上面的C语言结论得知,我们知道每个元素实际上是共享内存,消息队列,信号量的结构体--->也就是子类结构体。返回的时候,xxxid也是一个数组下标、假设已知的指针数组的下标为p,那么强转成对应的结构体类

文章图片
#linux#服务器#运维
【Linux】线程概念与控制(1)线程基础与分页式存储管理

进程=内核数据结构+自己的代码和数据在内核视角:进程是承担分配系统资源的基本单位线程是进程内部的一个执行分支;线程的粒度比进程细,小,更轻一点。

文章图片
#linux#运维#服务器 +2
【Linux】线程同步和互斥(1):线程互斥与加锁实现

当线程A执行到lock的第三条语句,时间片到了,被切走,此时A要保存它的硬件上下文-->eax=1,pc=3(表示执行到第三行代码);线程A回来,写入自己eax的值,从第三条语句继续执行,eax>0,线程A解锁成功。即使是多处理器平台,访问内存的总线周期也有先后,一个处理器上的交换指令执行时,另一个处理器的交换指令只能等待总线周期。当只剩一张票的时候,假设有A B C D 四个线程,当A把1加载到

文章图片
#开发语言#linux#运维 +2
【Linux】线程同步和互斥(4)线程池及手把手实现日志

提前创建的一批专门用来处理任务的线程,目的是提高效率。用户有任何任务,交给线程池,线程池会自动的帮你处理--->线程池本质就是多生产者多消费者模型可以给每个线程都给一个任务队列,负载均衡的把任务交给任务队列所以之前写的基于管道的进程池也是生产者消费者模型。

文章图片
#开发语言#linux#服务器 +2
    共 29 条
  • 1
  • 2
  • 3
  • 请选择