操作系统-LINUX
文章平均质量分 88
philippe coutinho
我是库蒂尼奥
展开
-
UDP/TCP协议
传输层典型协议一、UDP协议1.1 协议格式1.2 协议特性1.2.1 无连接1.2.2 不可靠1.2.3 面向数据报1.3 其他二、TCP协议2.1 协议格式2.2 协议特性2.2.1 面向连接2.2.1.1 三次握手2.2.1.2 四次挥手![在这里插入图片描述](https://img-blog.csdnimg.cn/20210331221119527.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_a原创 2021-04-01 10:45:36 · 150 阅读 · 2 评论 -
线程安全(信号量)
信号量一、什么是信号量二、相关接口2.1 定义信号量:sem_t2.2 初始化信号量2.3 P操作2.4 V操作前面我们已经说过,多线程之间自己不具备同步与互斥的功能,所以在多线程访问临界资源过程中,需要去限制线程,使之是安全的,前面我们提到了互斥的实现–互斥锁,同步的实现–条件变量,今天我们接着谈一个信号量一、什么是信号量信号量本质是一个计数器和一个队列pcb等待队列,通过其实现进程间或者线程间的同步与互斥,关于信号量的同步与互斥的实现,我在博客 进程间通信(下) 中谈到过,虽然当时讲到的是多进程,原创 2021-03-05 10:27:28 · 938 阅读 · 1 评论 -
线程安全(条件变量)
条件变量一、什么是同步二、 条件变量2.1 如何实现同步2.1 相关接口2.3 生产与消费者模型2.3.1 生产与消费者模型的基本认识2.3.2 生产与消费者模型的实现(阻塞队列)一、什么是同步对于多线程编程而言,多个线程按照某种规则访问临界资源,避免线程产生饥饿问题,实现临界资源访问的合理性,这就是同步!二、 条件变量2.1 如何实现同步条件变量提供了使线程阻塞,以及唤醒线程的接口,但是什么时候去唤醒,什么时候阻塞,需要用户自己控制合理的时序逻辑(在合适的时候调用条件变量合适的接口)。2.1原创 2021-03-04 16:25:01 · 250 阅读 · 1 评论 -
线程安全(互斥锁)
线程(下)一、线程安全1.1 互斥1.1.1 互斥锁1.1.1.1 原理1.1.1.2 相关接口1.2 同步1.2.1 条件变量1.2.2 信号量二、线程的应用一、线程安全线程安全指的就是多个线程对临界资源访问操作是安全的,但是怎么去实现让其访问操作是安全的了,这里就需要去通过同步与互斥实现了。1.1 互斥互斥:同一时间,只能由一个线程访问临界资源,实现临界资源访问的安全性。互斥的实现我们今天谈一个互斥锁。1.1.1 互斥锁1.1.1.1 原理原理:是一个只能是0和1的计数器,用于在访问临界资原创 2021-03-04 16:07:29 · 269 阅读 · 0 评论 -
线程概念和线程控制
多线程线程概念线程控制线程安全线程应用线程概念线程控制线程安全线程应用原创 2021-03-02 17:04:41 · 261 阅读 · 0 评论 -
信号
信号什么是信号信号的三级目录什么是信号信号不是信号量,他是通知进程发生了某个事件,打断进程当前的操作,去处理该事件。信号是一个软件中断,作用是事件通知。linux下有62中信号非可靠1-31可靠信号的三级目录...原创 2021-02-28 11:21:36 · 178 阅读 · 0 评论 -
进程间通信(下)
消息队列和信号量一级目录二级目录三级目录一级目录二级目录三级目录原创 2021-02-24 10:42:34 · 79 阅读 · 0 评论 -
进程间通信(中)
共享内存一、什么是共享内存二、如何使用三、特性一、什么是共享内存共享内存实质是一块物理内存,多个进程通过将同一块物理内存映射到自己的虚拟地址空间,通过自己的虚拟地址空间访问这块物理内存,实现进程间数据共享。二、如何使用具体流程:创建共享内存接口:三、特性共享内存是最快的一种方式...原创 2021-02-23 22:23:15 · 103 阅读 · 0 评论 -
进程间通信(上)
进程间通信管道消息队列共享内存消息量管道消息队列共享内存消息量原创 2021-02-23 12:10:21 · 153 阅读 · 0 评论 -
重定向
重定向一、重定向1.1 清空重定向(>)1.2 追加重定向(>>)二、dup2一、重定向原理:改变描述符数组对应下标节点中的描述信息,从而改变所操作的文件。标准输出重定向:将本应该写入标准输出的数据不再写入标准输出,而是写入指向的文件。1.1 清空重定向(>)定义:将写入标准输出的数据写入指向文件之前,先清空文件里面的数据。举例:1.2 追加重定向(>>)定义:将写入标准输出的数据追加写入指向文件的末尾。举例:二、dup2接口:int dup2(原创 2021-02-21 11:28:07 · 157 阅读 · 0 评论 -
标准库IO和系统调用IO的简单使用
基础IO一、标准库IO1.1 fopen1.2 fread1.3 fwrite1.4 fclose二、系统调用IO2.1 open2.1 write2.1 read2.1 close一、标准库IO1.1 fopen1.2 fread1.3 fwrite1.4 fclose二、系统调用IO2.1 open2.1 write2.1 read2.1 close原创 2021-02-20 09:11:18 · 221 阅读 · 0 评论 -
进程控制
一、进程创建二、进程等待三、进程替换四、进程终止原创 2021-02-18 12:06:33 · 113 阅读 · 0 评论 -
进程概念(下)
四、进程状态简单地说,每个进程都会有描述运行的状态信息,通过状态信息,告诉操作系统这个进程在干什么。linux中的进程状态:1.运行状态®:正在运行或者拿到时间片就可以运行休眠:暂时不需要CPU调度,让出CPU资源,休眠也会有唤醒条件,如果进程状态为休眠,操作系统就会查看是否满足唤醒条件,如果满足则将进程置为运行状态,反之则转到下一进程。2.可中断休眠状态(S):可以被打断的休眠(满足某些条件就会运行或者被一些中断打断休眠后运行)3.不可休眠状态(D):不会被一些中断打断休眠,只能等待唤醒条件满原创 2020-10-04 13:54:28 · 106 阅读 · 0 评论 -
进程概念(上)
进程概念冯诺依曼体系结构操作系统进程概念一、冯诺依曼体系结构二、操作系统三、进程概念四、进程状态五、环境变量六程序地址空间原创 2020-10-02 21:06:13 · 96 阅读 · 0 评论 -
Linux下的常用指令(下)
十七、find指令find+文件名/目录名:查找当前所在文件目录下的文件或者目录(如果是目录,也显示该目录所有文件)十八、grep指令grep+字符串+文件:将文件中具有该字符串的行显示grep -i+字符串+文件:将文件中具有该字符串(不区分大小写)的行显示grep -n+字符串+文件:将文件中具有该字符串的行显示,顺便输出打印的行号grep -v+字符串+文件:反向查找,将文件中没有改字符串的行显示十九、zip和unzip指令(压缩、解压缩)zip+压缩文件.zip+目录/文件:将目原创 2020-08-05 10:54:49 · 118 阅读 · 1 评论 -
Linux下的常用指令(中)
八、man指令概念:Linux下的命令手册man+命令:查看相关命令的功能以及选项功能man+n+命令:在第n节查找命令man -a+命令:将所有章节对应命令全部显示九、mv指令**mv+源文件或目录+目标文件或目录 **:移动文件或者改变文件的名字mv -f+源文件或目录+目标文件或目录:直接覆盖已经存在的目标文件mv -i++源文件或目录+目标文件或目录:询问是否覆盖已经存在的目标文件十、cat指令cat+文件名:查看文件内容cat -b +文件名:对文件非空行内容编号显原创 2020-07-23 17:46:42 · 134 阅读 · 0 评论 -
Linux下的常用指令(上)
一、ls指令ls:查看当前目录下的文件。ls -a: 查看当前目录下所有的文件(包括隐藏文件(.开头的文件默认不显 示,所以也就是隐藏文件))。ls -l: 查看当前目录下所有文件的详细信息(包括文件类型、权限信息、链接数、文件所有者、文件所属组、文件大小、文件最近修改时间)。二、pwd指令pwd:显示用户当前所在目录的路径。三、cd指令cd+目录名 :改变当前所在目录,到指定目录下。cd . . :返回上一级目录cd - :返回最近访问目录四、touch指令touc原创 2020-07-20 16:42:19 · 90 阅读 · 0 评论