Linux知识总结
文章平均质量分 72
Tianzez
稳健
展开
-
vim编程小技巧
1. 注释注释 1. Ctrl+v进入v模式 2. 上下方向键选中要注释的行 3. shift+i(即大写的I)行首插入 4. 输入注释符// 5. 按esc返回反注释 1. Ctrl+v进入v模式 2. 上下方向键选中要注释的行,左右键选择要删除的字符// 3. 按d删除2. 删除(以下操作均在正常模式下进行)dd —— 删除单行Nd —— 删除多...原创 2018-01-26 18:21:40 · 1544 阅读 · 0 评论 -
Linux——进程关系和守护进程
Linux知识总结目录索引一、进程组/作业/会话0. 终端1. 进程组2. 作业3. 会话二、守护进程1. 什么是守护进程2. 创建守护进程3. 创建守护进程函数daemon一、进程组/作业/会话0. 终端 在UNIX系统中,用户通过终端登录系统后得到一个Shell进程,这个终端成为Shell进程的控制终端 (Controlling Term...原创 2018-06-27 11:01:25 · 310 阅读 · 0 评论 -
Linux —— 线程互斥
Linux知识总结目录索引本文目录一、互斥锁1. 操作步骤(1)创建锁(2)初始化锁①设置线程的属性(3)上锁 && 解锁(4)销毁互斥锁2. 死锁(1)死锁的两种情况:(2)避免的死锁的原则(3)临界区代码原则3. 互斥锁和信号量的区别4. 线程安全和可重入二、自旋锁1. 操作步骤2. 自旋锁和互斥锁的区别三、读写锁...原创 2018-05-23 10:39:37 · 999 阅读 · 0 评论 -
Linux知识总结目录索引
01. vim编程技巧02. Linux基本命令03. PCB进程控制块04. 进程控制05. 死锁06. 管道07. 消息队列08. 信号量09. 进程信号10. 线程概念及基本操作...原创 2018-05-23 10:15:12 · 410 阅读 · 0 评论 -
Linux —— 线程概念及基本操作
本文转自:https://blog.csdn.net/zhangye3017/article/details/80367223 更多linux知识点:linux目录索引1. 什么是线程 线程是进程执行内部的一个执行分支,在一个进程内部运行的多种执行流;内部本质上是多个线程在同一个地址空间运行;第一个pcb称...原创 2018-05-23 10:02:23 · 664 阅读 · 0 评论 -
Linux —— 进程间通信之消息队列
1. 消息队列基本概念1.1 什么是消息队列? 消息队列本质是一个队列(具有先进先出的特性),队列中存放的元素是一个个消息缓存块(message)。 消息缓冲块: 一种自定义数据结构(可以类比链表中的节点),用于存储信息,进程之间通信的方法之一,结构如下: struct msgbuf{ long channel; //通道号 char mtext[100...原创 2018-04-29 13:18:49 · 485 阅读 · 0 评论 -
Linux —— 进程间通信之信号量
1. 什么是信号量 信号量的本质是数据操作锁,它本身不具有数据交换的功能,而是通过控制其他的通信资源(文件,外部设备)来实现进程间通信,它本身只是一种外部资源的标识。信号量在此过程中负责数据操作的互斥、同步等功能。 信号量其实就是一个计数器,它记录着资源的数量。当进行P操作时,消耗资源,信号量减少;当进行V操作时,释放资源,信号量增加。2. 信号量的操作1. semget函...原创 2018-05-07 10:23:25 · 228 阅读 · 0 评论 -
Linux —— 进程间通信之管道
1. 匿名管道 这里说的管道是指匿名管道(无名管道),是 UNIX 系统IPC最古老的形式。1. 管道的特点:其本质是一个伪文件(实为内核缓冲区)。它是半双工的(即数据只能在一个方向上流动),具有固定的读端和写端。它只能用于具有亲缘关系的进程之间的通信(也是父子进程或者兄弟进程之间)。它可以看成是一种特殊的文件,对于它的读写也可以使用普通的read、write 等函数。但是它...原创 2018-04-25 15:25:27 · 256 阅读 · 0 评论 -
Linux —— 进程信号
一、信号的基本概念1. 什么是信号2. 哪些情况会产生信号?3. 如何查看信号4. 进程收到信号的三种处理方式:5. 信号的分类二、操作信号1. 注册信号 —— signal()函数2. 给进程发送信号 —— kill()函数3. 给本进程发信号——raise()函数4. 给进程组发信号 —— killpg()函数三、常用的SIGALRM信号1. 闹钟信号 ——...原创 2018-05-09 16:37:38 · 712 阅读 · 0 评论 -
转发:PCB进程控制块
文字转自:https://blog.csdn.net/w_y_x_y/article/details/80016975 想要有顺序地学习Linux,入口在这里哦:Linux:目录索引PCB:进程控制块0.PCB是干什么的? 学了操作系统后,我们都知道操作系统要想管理一个对象,它不是直接进行管理的,...转载 2018-04-20 15:04:25 · 427 阅读 · 0 评论 -
Linux —— 死锁的产生、预防、避免、检测与解除
1. 死锁的基本概念1. 死锁的定义 所谓的死锁是指在多道程序系统中,一组进程中的每个进程都无限期地等待被该组进程中的另一个进程所占有且永远不会被释放的资源,这种现象称系统处于死锁状态,简称死锁。处于死锁状态的进程成为死锁进程。 系统发生死锁会大量浪费系统资源甚至会导致整个系统崩溃。2. 产生死锁的原因 产生死锁的原因主要有两个:一是竞争资源,系统提供的资源有...原创 2018-04-23 21:26:39 · 2139 阅读 · 0 评论 -
Linux——进程控制
1.创建进程创建进程的步骤:给新建的进程分配一个进程标识符,在内核中创建PCB。复制父进程的环境。给子进程分配资源、栈、堆、代码、数据等。复制父进程的地址空间内容到子进程的地址空间。将进程置为就绪状态,放到就绪队列。创建进程一般都是使用fork()函数,下面先简单了解一下这个函数。头文件: #include<unistd.h> /*#包含<unist...原创 2018-04-06 18:19:42 · 418 阅读 · 0 评论 -
Linux新手必备的命令
文章参考:http://www.linuxprobe.com/chapter-02.html常见执行Linux命令的格式是这样的:命令名称 [命令参数] [命令对象]注意,命令名称、命令参数、命令对象之间请用空格键分隔。命令对象一般是指要处理的文件、目录、用户等资源,而命令参数可以用长格式(完整的选项名称),也可以用短格式(单个字母的缩写),两者分别用–与-作为前缀(示例请见表原创 2018-02-04 16:08:47 · 489 阅读 · 0 评论 -
TCP协议实现qq群聊
一、注意的问题客户端的0号文件描述要设置成非阻塞,这样才能接受其他客户端发的消息。客户端的读写操作也必须设置成非阻塞。对服务端使用setsockopt函数,允许创建多个端口号相同的套接字(解决服务器先关闭而引发TIME_WAIT状态的一系列问题)二、源代码comm.h#ifndef __COMM_H__#define __COMM_H__#define NAM...原创 2018-07-12 21:05:14 · 1019 阅读 · 0 评论