Linux
文章平均质量分 87
黑T毒物
这个作者很懒,什么都没留下…
展开
-
【Linux】Posix信号量
1. 信号量的概念和作用1.1信号量的概念和原理:信号量是一种用于提供不同进程间或一个给定进程的不同线程间同步手段。它是一个特殊的变量,只允许对它进行等待wait()和发送信号post(),并且这两种操作都是原子操作。该变量的值表示允许同时访问共享资源的最大进程数。wait() 等待一个信号量该操作会检查信号量的值,如果其值小于或等于0,那就阻塞,直到该值变成大于0,然后等待进程将信号量的值减1,进程获得共享资源的访问权限。这整个操作必须是一个原子操作。post() 挂出一个信号量。该操作将信号量的原创 2021-05-04 23:01:43 · 188 阅读 · 0 评论 -
【Linux】条件变量
什么是条件变量:与互斥锁不同,条件变量是用来等待而不是用来上锁的,一个条件变量对应一个等待队列。条件变量是利用线程间共享的全局变量进行同步的一种机制,主要包括两个动作:一个线程等待"条件变量的条件成立"而挂起;另一个线程使"条件成立"(给出条件成立信号)唤醒线程。条件变量的使用:1.条件变量初始化:(1)pthread_cond_t cond=PTHREAD_COND_INITIALIZER;(2)int pthread_cond_init(pthread_cond_t *cond, pthrea原创 2021-04-12 17:01:26 · 208 阅读 · 0 评论 -
【Linux】线程安全,mutex锁的使用
什么是线程安全?当多个线程访问某个方法时,不管这些线程如何交替的执行,如果每次运行的结果和单线程运行的结果都是一样的,那么就可以说线程安全。线程安全问题都是由全局变量及静态变量引起的。若每个线程中对全局变量、静态变量只有读操作,而无写操作,一般来说,这个全局变量是线程安全的;若有多个线程同时执行写操作,一般都需要考虑线程同步和互斥,否则的话就可能影响线程安全。互斥锁的使用...原创 2021-03-13 09:45:17 · 509 阅读 · 0 评论 -
【Linux】线程概念,线程控制。
目录线程概念:线程控制:线程概念:操作系统分配资源以进程为基本单位。而线程是进程的组成部分,它代表了一条顺序的执行流,每个进程至少有一个执行流。线程是cpu调度的最小单位,同类的多个线程共享同一块内存空间和一组系统资源。假如有一个程序它由fun1()fun2()fun3()三个函数组成。三个函数该程序运行起来分配相应的资源,pcb块,虚拟地址空间,页表等如下图所示。总结:在linux中没有线程的概念,线程的创建是通过库函数实现的,库函数通过是模拟进程pcb实现的(如上图所示.原创 2020-11-11 20:53:05 · 246 阅读 · 0 评论 -
【Linux】进程间通信(1):共享内存shmget() shmat() shmdt() shmctl()
文章目录什么是共享内存:共享内存的使用:什么是共享内存:进程的是独立的,每个进程有自己的地址空间,通过页表映射到物理内存上。共享内存就是在物理内存上开辟一段内存空间,然后分别与多个不相干的进程,通过页表关联起来。关联的过程就是每个进程都开辟一段自己的虚拟地址空间 并通过页表 与共享内存一一对应。如果某个进程向共享内存写入数据,所做的改动将立即影响到可以访问同一段共享内存的任何其他进程。共享内存的使用:(1) 创建或打开共享内存int shmget (key_t key, size_t size,原创 2020-11-04 10:13:58 · 246 阅读 · 0 评论 -
【Linux】基本IO操作 文件描述符 文件系统
文章目录标准库IO操作:系统调用接口:标准库IO操作:FILE * fopen(const char* path, const char* mode);参数:path字符串包含欲打开的文件路径及文件名。mode字符串则代表着流形态,流形式有如下几种:r :打开只读文件,该文件必须存在。r+ :打开可读写的文件,该文件必须存在。w :打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。w+ :打开可读写文件,若文件存在则文件长度清为零,即该文件内容原创 2020-10-19 17:40:19 · 213 阅读 · 0 评论 -
进程控制(创建,退出) 程序替换
创建进程:pid_t fork(void)创建一个新的进程(子进程),父进程调用fork()后,系统会为子进程分配资源:创建了一个新的PCB,然后将父进程PCB的大部分数据复制到新的PCB。PCB里边都有什么内容呢分为这么几类:(1)进程的标识信息(执行的哪个可执行文件,id是多少,父进程id等(2)进程的状态信息(CPU状态寄存器里的信息,地址空间,页表起始地址,进程状态,是否允许调度等)(3)进程占用的资源(分配给它的内存(内存地址空间mm),内核堆栈信息等)(4)保护现场的信息(寄存器信息原创 2020-10-17 17:40:43 · 136 阅读 · 0 评论 -
进程概念,进程状态,虚拟地址空间,环境变量
关于进程的理解:进程的概念:进程是运行着的程序,是系统运行程序的基本单位,进程是动态的。系统运行一个程序即是一个进程从创建,运行到消亡的过程。程序 一系列有序的指令集合,存储在硬盘中是静态的代码。什么是PCB:想要运行程序,既:程序的数据和指令想要被cpu处理,第一步就是将代码和数据加载到内存中,并通过建立PCB控制块(task_struct结构体),建立进程。task_struct结构体是记录了进程的相关信息的数据结构,它包括:描述信息:内存指针,程序计数器,上下文数据,进程标识符PID,IO信原创 2020-10-13 18:01:44 · 180 阅读 · 0 评论