![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Linux/UNIX学习和进阶
每天进步一点点的码农
CodeAmmon
做好自己喜欢的事
展开
-
再读《深入理解linux内核》-----阅读目的
此次阅读,是因为在日常的开发工作中,用到了书中的内容,第一次阅读的时候,感觉晦涩难懂,且没有结合实例,只是了解了一些概念性东西,脑子里有了些印象,时隔一年,再次阅读,有了不同的感受、不同的认识和新的理解,结合工作学习中遇到的问题,再结合书中所介绍的相关知识,使自己印象更为深刻,俗话说,好记性不如烂笔头,所以把自己用到的知识整理记录下来,以便日后查漏补缺。...原创 2021-11-01 10:06:48 · 80 阅读 · 0 评论 -
再读《深入理解linux内核》-----内核同步常用方法简介
一、原子操作“读—修改—写”类型,访问同一存储器单元两次,第一次读原值,第二次写新值。当运行在两个CPU上的两个内核控制路径同时“读—修改—写”同一存储器单元,避免交错的“读—修改—写”,从而导致结果不对,使用原子操作,linux内核提供了一个专门的atomic_t类型(原子访问计数器)和一些专门的函数和宏。1.原子整型操作2.原子位操作二、自旋锁1.当一个线程获取了锁之后,其他试图获取这个锁的线程一直在循环等待获取这个锁,直至锁重新可用。由于线程是在一直循环的获取这个锁,所以会造成CPU处理原创 2021-10-29 16:22:35 · 86 阅读 · 0 评论 -
再读《深入理解Linux内核》-----中断下半部的处理机制
一、中断下半部的处理原创 2021-10-25 21:06:35 · 138 阅读 · 0 评论 -
Linux/UNIX系统编程手册---第30章线程同步之条件变量
通知状态的改变:条件变量一、未使用条件变量的例子#include <pthread.h>#include<stdio.h>#include<string.h>#include<stdlib.h>#include<time.h>#include<stdbool.h>static int avail = 0;static pthread_mutex_t mxt = PTHREAD_MUTEX_INITIALIZER;s原创 2021-02-21 21:29:38 · 99 阅读 · 0 评论 -
Linux/UNIX系统编程手册---第30章线程同步之互斥量
线程同步一、 以非原子方式访问共享资源实例#include <pthread.h>#include<stdio.h>#include<string.h>#include<stdlib.h>/********************************************** * 代码描述该程序创建了两个线程,且均执行同一函数。该函数执行一个循环,重复以下步骤:将glob复制到本地变量loc中,然后递增loc,再把loc复制回glob,原创 2021-02-09 15:51:58 · 101 阅读 · 0 评论 -
UNIX环境高级编程---终端IO---转载
终端IO转载地址:https://blog.csdn.net/chenhanzhun/article/details/41378807?ops_request_misc=%25257B%252522request%25255Fid%252522%25253A%252522161216190916780261992797%252522%25252C%252522scm%252522%25253A%25252220140713.130102334…%252522%25257D&request_id=1转载 2021-02-01 15:01:03 · 85 阅读 · 0 评论 -
UNIX环境高级编程---高级进程间通信---转载
高级进程间通信—转载转载地址:https://blog.csdn.net/brianleelxt/article/details/106206957UNIX 域套接字UNIX 域套接字 用于在同一台计算机上运行的进程之间的通信 ,它可以在同一计算机系统上运行的两个进程之间传送打开的文件描述符 。UNIX 域套接字 仅仅 复制数据 ,它们并不执行协议处理,不需要添加或删除网络报头,无需计算校验和,不要产生顺序号,无需发送确认报文 。所以比 因特网域套接字 效率更高 。UNIX 域套接字 提供流和转载 2021-02-01 14:36:24 · 143 阅读 · 0 评论 -
UNIX环境高级编程---网络IPC:套接字---套接字描述符
套接字描述符一、 socket函数:创建 一个套接字#include <sys/socket.h>int socket(int domain, int type, int protocol);//返回值:若成功,返回套接字描述符;若出错,返回 -1参数说明:domain:确定通信的特性,各个域都有自己表示地址的格式,而表示各个域的常数都以 AF_ 开头,意指地址族type:确定套接字的类型,进一步确定通信特征protocol:通常是 0 ,表示为给定的域和套接字类型选择默原创 2021-02-01 14:27:01 · 127 阅读 · 0 评论 -
UNIX环境高级编程---网络IPC:套接字---思维导图
网络IPC:套接字思维导图在学习中进步,如有错误,请多多批评指正原创 2021-02-01 14:25:30 · 103 阅读 · 0 评论 -
UNIX环境高级编程---进程间通信---思维导图
进程间通信思维导图在学习中进步,如有错误,请多多批评指正原创 2021-01-31 20:30:27 · 146 阅读 · 0 评论 -
UNIX环境高级编程---高级IO思维导图
高级IO思维导图在学习中进步,如有错误,请多多批评指正原创 2021-01-31 17:10:12 · 123 阅读 · 0 评论 -
UNIX环境高级编程---线程控制---思维导图
线程控制思维导图在学习中进步,如有错误,请多多批评指正原创 2021-01-30 13:15:06 · 84 阅读 · 0 评论 -
UNIX环境高级编程---线程---死锁详解
死锁一、死锁产生原因线程对同一个互斥量加锁两次,那么它自身就会陷入死锁状态多个互斥量,多个线程交叉请求访问冲突。例如,程序中使用一个以上的互斥量时,如果允许一个线程一直占有第一个互斥量,并且在试图锁住第二个互斥量时处于阻塞状态,但是拥有第二个互斥量的线程也在试图锁住第一个互斥量。因为两个线程都在相互请求另一个线程拥有的资源,所以这两个线程都无法向前运行,于是就产生死锁。二、避免死锁仔细控制互斥量加锁的顺序。例如,假设需要对两个互斥量A和B同时加锁。如果所有线程总是在对互斥量B加锁之前锁住互斥原创 2021-01-29 15:59:27 · 203 阅读 · 1 评论 -
UNIX环境高级编程---线程---线程和进程函数比较图
进程和线程函数比较图原创 2021-01-29 15:57:15 · 55 阅读 · 0 评论 -
UNIX环境高级编程---线程---思维导图
线程思维导图在学习中进步,如有错误,请多多批评指正原创 2021-01-29 15:56:13 · 80 阅读 · 0 评论 -
UNIX环境高级编程---进程控制思维导图---转载
进程控制思维导图在学习中进步,如有错误,请多多批评指正转载 2021-01-26 19:52:18 · 177 阅读 · 0 评论 -
UNIX环境高级编程---标准I/O库
标准IO库思维导图在学习中进步,如有错误,请多多批评指正原创 2021-01-24 15:48:38 · 73 阅读 · 0 评论 -
UNIX环境高级编程---文件和目录---stat结构体
文件和目录—stat结构体在学习中进步,如有错误,请多多批评指正原创 2021-01-23 16:10:40 · 95 阅读 · 0 评论 -
UNIX环境高级编程---文件IO---3.10 文件共享
3.10 文件共享在学习中进步,如有错误,请多多批评指正原创 2021-01-23 10:51:39 · 95 阅读 · 0 评论 -
UNIX环境高级编程---文件IO---3.6 lseek函数
文件IO—3.6 lseek函数lssek现实地为一个打开文件设置偏移量。通常,读、写操作都从当前文件偏移量处开始,并使偏移量增加所读或写的字节数。按系统默认,当打开一个文件时,除非指定O_APPEND选择项,否则该位移量被设置为0,函数原型:#include <sys/types.h>#include <unistd.h>off_t lseek(int fd, off_t offset, int whence) ;//返回:若成功为新的文件偏移量,若出错为- 1参原创 2021-01-22 17:56:04 · 169 阅读 · 1 评论