Linux
聪聪菜的睡不着
这个作者很懒,什么都没留下…
展开
-
二十二、线程同步经典问题模型
一、生产者消费者模型(一)问题描述(二)问题分析(三)代码实现(四)模型优点二、读者写者问题(一)问题描述(二)问题分析(三)代码实现1.读写锁2.信号量(四)不足三、哲学家就餐问题(一)哲学家就餐描述(二)问题分析(三)代码实现【第一种解决方案:最多允许四个哲学家同时进餐。】【第二种解决方案:仅当一个哲学家左右两边的筷子都可用时才允许他抓起筷子。】【第三种解决方案:对哲学家顺序编号的方法。】原创 2020-07-02 15:32:28 · 633 阅读 · 0 评论 -
二十 一、进程,线程,协程,管程,锁等相关知识
一、进程、线程、协程、管程(一)进程(二)线程(三)进程&&线程(四)多进程(五)多线程(六)多进程&&多线程(七)协程(八)线程&&协程(九)管程二、锁的实现三、锁的类型(一)互斥锁mutex(二)读写锁rwlock(三)自旋锁spinlock四、死锁(一)死锁产生的原因(二)死锁产生的必要条件(三)处理死锁的方法(四)四个算法原创 2020-07-01 15:12:26 · 481 阅读 · 0 评论 -
二十、线程安全
一、线程安全(一)概念(二)线程安全之临界资源(三)线程安全之可重入函数二、线程和fork()(一)fork后子进程线程数量(二)fork后子进程锁的处理原创 2020-06-30 22:40:14 · 447 阅读 · 0 评论 -
十九、线程同步
一、线程同步的目的二、线程同步方式(一)互斥量(互斥锁)1. 基本概念2. 实例(二)读写锁1. 基本概念2. 实例(三)信号量1. 基本概念2. 实例(四)条件变量1. 基本概念2. 实例原创 2020-06-30 16:27:48 · 295 阅读 · 0 评论 -
十八、线程概念与基本使用
一、线程基本概念(一)定义(二)实现(三)优点(四)线程和进程的区别二、线程管理(对资源的管理)三、操作系统线程实现方式(一)内核态线程实现(二)用户态线程实现(三)组合级线程实现四、Linux系统线程实现方式五、Linux系统线程库的使用(一)创建线程pthread_create1. 实例1:创建一个线程2. 实例2:给创建的线程传参(值传递)3. 实例3:给创建的线程传参(地址传递)(二)线程结束函数1. 线程退出2. 线程回收(阻塞)3. 实例1:exit(0)退原创 2020-06-28 18:54:38 · 446 阅读 · 0 评论 -
十七、进程间通讯--共享内存
一、共享内存基本概念(一)定义(二)原理(三)特点二、共享内存相关函数(一)共享内存的创建引用shmget函数(二)共享内存的操作shmctl函数(三)连接共享内存shmat函数(四)断开共享内存shmdt函数(五)命令三、实例原创 2020-06-27 11:14:46 · 649 阅读 · 0 评论 -
十六、进程间通讯--信号量
一、相关基础概念(一)进程关系(二)临界资源&临界区(三)原子操作(四)PV操作二、信号量概念(一)定义(二)使用(三)特点三、信号量函数(一)创建/获取信号量集合semget函数(二)设置信号量集合semctl函数(三)操作信号量semop函数(四)封装系统调用函数实现一系列功能四、实例原创 2020-06-26 23:43:00 · 562 阅读 · 0 评论 -
十五、进程间通讯--消息队列
一、消息队列的概念二、消息队列相关函数三、实例原创 2020-06-25 17:17:14 · 430 阅读 · 0 评论 -
十四、进程间通讯--管道
一、进程间通讯二、管道二、有名管道FIFO(一)基本概念(二)实例(三)注意三、无名管道(一)基本概念(二)实例原创 2020-06-24 18:48:59 · 205 阅读 · 0 评论 -
十三、信号
一、信号基本概念(一)信号的产生(二)信号的处理(三)信号的种类&常见信号二、修改信号响应方式的signal函数(一)概念(二)实例1:修改中断信号的响应方式(三)实例2:利用信号处理僵死进程三、信号的发送(一)kill & raise(二)实例3:通过kill函数发送信号实现类似终端kill的相关命令原创 2020-06-17 16:05:45 · 230 阅读 · 0 评论 -
十二、僵死进程 && 进程替换
一、僵死进程(一)什么是僵死进程1. 僵死进程的产生2. 查看僵死进程3. 僵死进程的危害&&区分孤儿进程和僵死进程(二)处理僵死进程1.wait函数2.waitpid函数3.两者的区别4.两种办法处理僵死进程二、进程替换(一)进程替换:(二)进程替换函数:(三)函数区别:(四)举例原创 2020-06-16 22:36:13 · 259 阅读 · 0 评论 -
十 一、文件属性的获取(五)
一、stat函数&命令(一)获取文件属性(二)stat命令(三)判断文件类型二、fstat,lstat函数&三者的区别原创 2020-06-16 14:31:22 · 417 阅读 · 0 评论 -
十 一、I/O操作之文件共享(四)
一、内核中的I/O数据结构二、文件共享三、原子操作四、例子原创 2020-06-02 23:49:14 · 454 阅读 · 0 评论 -
十 一、I/O操作之库函数&&系统调用的区别(三)
一、系统调用和库函数二、两者的联系三、两者的区别原创 2020-05-30 19:35:07 · 301 阅读 · 0 评论 -
十 一、I/O操作之系统调用(二)
一、基本概念(一)文件描述符(二)带缓冲区的I/O && 不带缓冲区的I/O(三)man指令(四)基础中断机制知识二、系统调用文件I/O函数(一)open(二)read(三)write(四)close(五)lseek三、系统调用的过程四、例题原创 2020-05-28 23:00:24 · 680 阅读 · 0 评论 -
十 一、I/O操作之库函数(一)
一、库函数基础概念二、基础文件操作函数(一)fopen(二)fread(三)fwrite(四)fseek(五)fclose三、例题(一)将界面上输入的数据存储到a.txt中,再将a.txt中的内容显示在终端上(二)利用库函数实现cp拷贝功能原创 2020-05-27 19:20:11 · 1055 阅读 · 1 评论 -
十、Linux多进程(二)
一、fork()创建子进程(一)基础概念(二)示例二、父子进程的存储空间三、父进程把存储空间拷贝给子进程的时机和方式(一)执行fork()时拷贝?一次性拷贝?(二)写时拷贝四、关于fork的例题原创 2020-05-20 21:02:19 · 287 阅读 · 0 评论 -
十、Linux多进程(一)
一、主函数(main函数)的参数(一)参数含义(二)获取&&传递参数二、输出缓冲区三、内存空间分布四、Linux上查看系统资源(一)查看资源(二)交换分区的开启&&关闭原创 2020-05-19 21:53:10 · 466 阅读 · 0 评论 -
九、操作系统基础知识
一、计算机基本部件(一)五大部件(二)总线(三)存储器(四)指令二、进程(一)进程概念(二)进程状态(三)并行 && 并发三、内存管理(一)分页(二)虚拟内存四、操作系统发展原创 2020-05-13 18:01:17 · 212 阅读 · 0 评论 -
八、用户管理命令 && 文件系统 && 连接文件 && 系统知识
一、用户管理命令(一)3个存储用户信息的文件(二)添加用户(三)修改密码(四)删除用户二、文件系统三、连接文件(一)软连接(类似快捷方式)(二)硬连接(类似别名)四、系统知识(一)系统运行级别(二)关机 && 重启原创 2020-05-09 22:40:57 · 265 阅读 · 0 评论 -
七、进程管理命令
一、关于进程二、查看进程命令(一)ps(二)top(三)pstree(四)jobs三、前台&&后台运行进程命令四、挂起后台进程命令五、结束进程命令原创 2020-05-08 21:26:28 · 280 阅读 · 0 评论 -
六、库文件
一、库文件概念二、静态库(一)生成&&使用(二) 示例(三) 特点三、动态库(一)生成&&使用(二) 示例(三) 特点四、区别原创 2020-04-29 23:30:08 · 3144 阅读 · 0 评论 -
五、Makefile/makefile
一、makefile概念二、如何实现makefile(一)基础的makefile文件(生成单可执行文件)1.格式2.示例(二) make指令(二)基础的makefile文件(生成多个执行文件)1.格式2.示例(三)进阶的makefile格式1.省略指令2.引入变量3.解决子目录问题4.makefile自动清理中间文件三、最简版本makefile原创 2020-04-27 23:14:27 · 527 阅读 · 0 评论 -
四、文件的运行和调试
一、gcc和g++的区别二、文件编译运行(一)分步完成(1)预编译(2)编译(3)汇编(4)链接(二)一步完成三、ELF文件四、gdb调试(一)基础知识(二)调试步骤原创 2020-04-21 23:14:43 · 473 阅读 · 0 评论 -
高性能I/O框架---Libevent
文章目录一、Linux服务端程序处理事件的3个关键点二、I/O框架库(一)基于reactor模式的I/O框架库组件三、Libevent(一)特点:(二)使用原理(三)基于reactor模式的I/O框架库Libevent组件(四)实现Libevent框架步骤(五)Libevent的一个实例一、Linux服务端程序处理事件的3个关键点统一事件源:信号是一种异步事件,信号处理函数和程序的主循环是...原创 2020-04-15 13:31:07 · 310 阅读 · 0 评论 -
服务器的多任务并发处理(三)---两种高效的事件处理/并发模式
文章目录一、同步,异步,阻塞,非阻塞(一)同步、异步(二)阻塞、非阻塞(三)同步阻塞,同步非阻塞,异步阻塞,异步非阻塞I/O二、两种高效的事件处理模式(一)Reactor 模式(二)Proactor模式两种高效的事件处理模式(一)半同步/半异步模式1、半同步/半反应堆模型2、高效的半同步/半异步模式(二)Proactor模式一、同步,异步,阻塞,非阻塞(一)同步、异步首先我们要知道同步I/O...原创 2020-04-11 09:59:51 · 983 阅读 · 0 评论 -
三、Linux常用文件命令
文件编辑命令vi/vim文件查看命令文件搜索,统计命令压缩文件命令管道命令 |原创 2020-04-02 23:07:28 · 434 阅读 · 0 评论 -
二、Linux文件类型,权限及基本操作
(一) 文件类型(二) 文件属性:(三)修改文件属性(四)文件基本操作命令原创 2020-04-02 21:29:18 · 240 阅读 · 0 评论 -
一、Linux目录结构介绍
@TOCLinux内核版本Linux是多用户工作的操作系统:多个用户可以同时登陆操作系统并工作,管理员一个,多个用户。那么它的发行版本常见的有哪几个呢?Linux常见发行版本: Redhat:红帽企业系统(RedHat Enterpeise Linux,RHEL),全球最大的开源技术厂商,全世界内使用最广泛的Linux发行套件,提供性能与稳定性极强的Linux套件系统,并拥有完善的全...原创 2020-04-01 14:46:35 · 279 阅读 · 0 评论