- 博客(17)
- 资源 (1)
- 收藏
- 关注
原创 Linux阻塞与非阻塞IO
Linux阻塞与非阻塞IO当应用程序对设备驱动进行操作的时候,如果不能获取到设备资源,那么阻塞式IO就会将应用程序对应的线程挂起,直到设备资源可以才做为止。对于非阻塞IO,应用程序对应的线程不会挂起,它要么一直轮询等待, 直到设备资源可以使用,要么就直接放弃。阻塞IO示意图[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kugl1jEF-158678365829...
2020-04-13 21:34:18 356
原创 Linux中断及处理方式
Linux中断中断中断的处理处理方式保护现场中断处理函数恢复现场arm对中断的处理流程初始化 a.设置中断源,使其可以产生中断 b.设置中断控制器,是否屏蔽,优先级等属性 c.使能中断执行其他程序产生中断CPU检查异常,处理中断,不同的中断跳去不同的地址执行(中断也是一种异常,参考异常向量表)Linux中断相关API中...
2020-04-13 21:32:10 793
原创 linux内核时间管理及内核定时器
Linux内核时间管理Linux内核中有大量的函数需要时间管理,比如延时程序、周期性的程序调度等。硬件定时器提供时钟源,时钟源的频率是可以设置的,设置好以后通过周期性中断来计时。周期性中断的频率也叫系统节拍,系统节拍在编译内核的时候可以设置。内核源码的根目录下的.config文件中有相关宏定义CONFIG_HZ_FIXED=0CONFIG_HZ_100=y# CONFIG_HZ_200...
2020-04-13 21:13:25 802
转载 深入理解 pthread_cond_signal和pthread_cond_wait
前人栽树后人乘凉,转载自 明明是悟空如有侵权,请及时联系我删除。参考https://www.cnblogs.com/x_wukong/p/7909895.html
2019-11-30 14:25:03 193
原创 Linux系统编程之线程控制及线程间同步互斥机制:POSIX信号量和互斥锁
声明:侵删文章目录1. 线程和进程的区别2.prhread线程库相关API3.线程间的同步和互斥4.互斥锁5.互斥锁例程6.POISX信号量 [System V 信号量参考此文](https://blog.csdn.net/qq_43921241/article/details/103123667)7.POSIX信号量例程1. 线程和进程的区别进程 :每个进程有自己独立的地址空间Linux...
2019-11-24 18:47:23 531
原创 System V共享内存 信号量: 生产者消费者实例
本实例通过信号量作为两个进程(生产者和消费者)之间的同步机制,生产者从终端向共享内存写数据,消费者从共享内存读数据打印到终端。文章目录流程图实例源码流程图实例源码sem_com.h 和sem_com.c 参考进程间通信之System V 信号量 例程同名程序shm_com.c#ifndef _SHM_COM_H#define _SHM_COM_H#include <sys...
2019-11-20 19:53:00 629 3
原创 进程间通信之System V 信号量
声明:侵删文章目录1.信号量概述2.System V信号量相关函数接口3. 例程1.信号量概述信号量也叫信号灯,用于进程/线程同步或互斥的机制信号灯的类型 : Posix无名信号量 主要用于主要用于线程间的同步和互斥Posix有名信号量 主要用于进程间同步和互斥System V 信号量信号量与其他进程间通信机制不大相同,它主要提供对进程共享资源访问控制机制,相当于内存中的标志,进程可...
2019-11-18 22:09:36 739
原创 进程间通信之消息队列
声明:侵删文章目录1.消息队列概述2.消息队列相关函数3.实例程序1.消息队列概述消息队列是System V IPC对象的一种 存放在内存中由内核来维护消息队列由消息队列ID来唯一标识消息队列就是一个消息的链表。用户可以在消息队列中添加消息、读取消息消息队列提供了一个从一个进程向另外一个进程发送一块数据的方法,并且每一块数据块都有一个类型消息队列可以按照类型来发送/接收消息与管道一...
2019-11-16 17:37:17 170
原创 进程间通信之共享内存
声明:侵删文章目录1. System V IPC 对象:2.ftok函数3.共享内存4.实例1. System V IPC 对象:System V IPC对象包括:共享内存、消息队列和信号灯集每个IPC对象有唯一IDIPC对象创建后一直存在,直到被显式的删除每个IPC对象都有一个关联的KEY **通过KEY值来获取IPC对象的ID** KEY值为0时代表当前IPC对象是私有的ipcs...
2019-11-16 14:06:19 335
原创 Linux系统编程进程间通信之信号
声明:侵删文章目录1. 信号机制2. 信号的发送与捕捉3.信号的处理4. 例程1. 信号机制信号是在软件层面对中断机制的一种模拟,是一种异步通信方式。信号可以使用户空间和内核空间直接交互,内核进程可以用他来通知用户进程发生某些事件。信号可以随时发送,不用知道接收进程当前状态,如果该进程处于未执行状态,信号就会由内核保存起来,知道进程进入执行状态。一个完整的信号周期可以分为三个重要的阶段...
2019-11-15 17:40:45 184
原创 Linux系统编程进程间通信之无名管道及FIFO
声明:侵删文章目录1. 无名管道2. FIFO有名管道1. 无名管道无名管道: pipe无名管道特点:只能用于具有血缘关系的进程之间通信半双工,有具体的读端和写端管道可以看成一个文件用read和write读写,但她不属于任何文件系统管道创建函数管道创建出的两端处于一个进程中,一般是先用pipe创建管道,在fork创建子进程,子进程会继承父进程创建的管道fd[0]固定用于管道的读...
2019-11-14 15:32:57 263
原创 Linux系统编程之守护进程
声明:侵删1. 守护进程概述守护进程( Daemon)是 Linux 中的后台服务进程。它是一个生存期较长的进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程常常在系统引导装入时启动,在系统关闭时终止。2. 守护进程编写①创建子进程,退出父进程,子进程变为孤儿进程由init进程收养②在子进程中创建新会话两个概念 进程组和会话期进程组:进程组是一个或多个...
2019-11-13 21:21:46 190
原创 Linux系统编程之进程控制
进程概述在 linux 系统中,每一个进程都是拥有自己的虚拟地址空间,都运行在独立的虚拟地址空间上。这也就是说,进程间是分离的任务,拥有各自的权利和责任。Linux 中的进程包括了 3 个段,分别为“ 数据段” 、 “ 代码段” 和“ 堆栈段” 。数据段: 存放的数据为全局变量、 常数及动态数据分配的数据空间( 如 malloc 函数取得的空间)等。代码段:存放的是程序代码数据。堆栈段:...
2019-11-12 19:27:04 381
原创 学习笔记:Linux网络编程之TCP socket 实例
server.c#include<stdio.h>#include<stdlib.h>#include<string.h>#include<unistd.h>#include<errno.h>#include<sys/socket.h>#include<sys/types.h>#incl...
2019-08-10 21:54:18 213
原创 学习笔记:Linux网络编程之TCP编程
socket 分为服务器端和客户端TCP socket的流程图sever端:1.socket函数socket() 函数用来创建套接字,确定套接字的各种属性NAME socket - create an endpoint for communicationSYNOPSIS #include <sys/types.h> /* S...
2019-08-10 21:10:34 208
原创 学习笔记:Linux网络编程之网络基础
TCP与UDP的区别TCP:是面向连接的流传输控制协议,具有高可靠性,确保传输数据的正确性,有验证重发机制,不会出现丢失或乱序。UDP:是无连接的数据报服务,不对数据报进行检查与修改,无须等待对方的应答,会出现分组丢失、重复、乱序,但具有较好的实时性,UDP段结构比TCP的段结构简单,因此网络开销也小。流格式套接字(SOCK_STREAM) 使用TCP/IP协议流格式套接字(Stream ...
2019-08-08 22:01:09 129
原创 Ubuntu 16.04下 samba服务器的安装以及图形界面配置 -小白终结者
Ubuntu 16.04下 samba服务器的安装以及图形界面配置1、安装 samba服务器以及图形界面配置程序包执行以下命令:$ sudo apt-get update // 读取软件包更新列表$ sudo apt-get install samba smbclient system-config-samba //安装samba 以及图形界面配置工具安装成功后打开samba U...
2019-07-19 15:35:01 3600 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人