![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux操作系统
文章平均质量分 73
123没有肆
这个作者很懒,什么都没留下…
展开
-
Linux基本命令1
Linux命令命令使用:命令名称+操作选项+操作对象目录命令:ls 浏览目录内容-l 查看文件的详细信息(课后调研信息的含义)-a 查看所有文件包括隐藏文件( linux下以.开头的文件是默认不显示的)pwd 查看当前所在路径/home/dev 绝对路径—基于根目录的路径表达方式…/dev/ 相对路径—相对于当前所在路径的表达方式在每一个目录...原创 2019-05-10 16:41:29 · 145 阅读 · 0 评论 -
C标准库和系统调用中的文件IO操作接口
C库中的文件IO操作接口fopen 打开文件fclose 关闭文件fread 读取fwrite 写入fprintf 格式化写入fseek 移动跳转当前读取/写入位置printf 格式化字符串,输出到终端sprintf 格式化字符串,将格式化后的字符串写入到一个buffer中fprintf 格式化字符串,将格式化后的字符串写入文件中...原创 2019-08-16 21:43:51 · 228 阅读 · 0 评论 -
线程安全-----互斥锁+条件变量+信号量+线程安全的单例模式
线程安全概念:多个线程(执行流)同时对临界资源进行访问而不会造成数据二义实现:同步 + 互斥同步:同一时间访问的唯一性互斥:对临界资源访问的时序合理性线程间互斥的实现:互斥锁1.定义互斥锁变量pthread_mutex_t mutex2.对互斥锁变量进行初始化pthread_mutex_init(&mutex,&attr)参数:mutex:要初始化的互斥量 ...原创 2019-08-12 13:13:06 · 566 阅读 · 0 评论 -
多线程----生产者与消费者模型
生产者与消费者模型一个场所,两种角色,三种关系一个场所是指缓冲区两种角色是指生产者和消费者三种关系是指:生产者与生产者的互斥关系消费者与消费者的互斥关系生产者与消费者的同步+互斥关系生产者与消费者模型的优点:1.解耦合:即不需要直接进行数据交互2.支持并发:即多个线程可以同时操作场所3.支持忙闲不均三个优点都是通过这个场所来提供,但是因为多个角色有可能同时操作场所,所以要...原创 2019-08-12 13:10:33 · 330 阅读 · 0 评论 -
线程基本概念和接口
线程相关的概念线程概念:1.先说进程:传统操作系统中使用PCB来描述一个程序的运行- - - PCB就是进程2.Linux下PCB用来模拟实现线程,因此Linux下的线程是一个轻量级的进程3.而且这些轻量级的进程因为共用大部分进程资源,相较于传统的进程更加轻量化进程是资源分配的基本单位,线程是CPU调度的基本单位多个PCB共用同一个虚拟地址空间,为什么不会发生调用栈混乱呢?线程之间的...原创 2019-08-12 13:08:00 · 791 阅读 · 0 评论 -
进程间通信- - -共享内存+消息队列+信号量
进程间通信共享内存共享内存是最快的进程间通信方式,相较于其他进程间通信方式,少了两次内核态与用户态之间的数据拷贝过程原理及使用过程在物理内存中开辟一块内存空间将这块内存空间通过页表映射到进程的虚拟地址空间中进程可以直接通过进程虚拟地址空间访问带到这块物理内存进程操作;若多个进程映射同一块物理内存,就可以实现相互通信;直接通过虚拟地址改变内存中的数据,其他进程的数据也会随之改变解除映...原创 2019-08-20 17:09:30 · 300 阅读 · 0 评论 -
高级IO
五种IO模型阻塞IO:在内核将数据准备好之前,系统调用会一直等待,所有的套接字默认都是阻塞方式非阻塞IO::如果讷河没有将数据准备好,系统调用会直接返回错误码,没有完成操作,往往需要循环的方式反复尝试读写文件描述符, 这个过程称为轮询.信号驱动IO:当IO条件具备时,向进程发送信号,发起IO调用异步IO:先定义信号,当IO完成时给进程发信号,IO操作本身不由进程完成,而是由操作系统完成IO...原创 2019-08-10 11:52:00 · 121 阅读 · 0 评论 -
进程- - -信号
信号概念:信号是进程之间事件异步通知的一种方式,属于软中断;通知进程发生了某件事情,中断进程当前的操作,转而去处理这件事信号的种类:共62种信号可靠信号- - -34~64非可靠信号- - -1~31相关命令查看信号种类- - -kill -l信号的作用过程信号的产生 -> 在进程中注册 -> 在进程中注销 -> 信号的处理信号的产生:硬件产生:ctrl...原创 2019-08-20 21:48:28 · 115 阅读 · 0 评论 -
进程间通信- - -管道
进程间通信由于进程具有独立性(都各自操作自己虚拟地址空间的虚拟地址,无法访问别人的地址),因此进程之间无法直接通信,操作系统根据不同场景,提供了几种不同的进程间通信方式:SYSTEM V: 管道, 共享内存, 信号量, 消息队列管道管道本质上还是是内核中的一块缓冲区,可以实现半双工通信(可选方向的单向传输)管道实现进程间通信的原理:让多个进程通过访问到相同的缓冲区来实现通信,管道实现通...原创 2019-08-19 20:08:01 · 106 阅读 · 0 评论 -
线程池原理+具体实现
线程池一种线程使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务,即在程序初始化时,创建一定数量的线程(又最大限制),从任务队列中获取任务,进行处理线程池=至少一个线程+任务队列作用:1.避免为大量请求创建线程,导致瞬间资源耗尽程序崩溃的问题2.避免大量线程频繁创建销毁所带来的时间成本线程池的应用场景:1.需要...原创 2019-08-13 21:40:52 · 151 阅读 · 0 评论 -
动态库与静态库
库文件实际上就是封装了一堆已经编译完成的代码文件,通过链接这个库进而获取到相应函数实现,即将代码翻译成机器指令代码(也就是执行到汇编这一步gcc -c test.c -o test.o),然后合在一起,就成了一个库动态库(.so):程序在运行的时候才去链接动态库的代码,多个程序共享使用库的代码。动态库的生成:现将多个.c文件生成.o文件 gcc -c test1.c -o test1.o...原创 2019-08-18 20:50:00 · 109 阅读 · 0 评论 -
进程相关
进程创建//进程创建// pid_t fork(void);#include <unistd.h>#include<stdio.h>int main(){ printf("hello world\n"); //pid_t fork(void); //创建一个子进程,父进程返回子进程的pid,父进程返回0 pid_t pid=fork(); if...原创 2019-07-22 17:50:17 · 146 阅读 · 0 评论 -
网络知识点总结
OSI七层网络模型:应用层—>表示层—>会话层—>传输层—>网络层—>链路层—>物理层TCP/IP五层模型:应用层—>传输层—>网络层—>链路层—>物理层应用层:应用程序之间的数据沟通(DNS,URI,HTTP,HTML)传输层:端与端之间的数据传输(TCP,UDP)网络层:地址管理和路由选择(IP,ARP)链路层:相邻设备...原创 2019-07-30 20:43:30 · 204 阅读 · 0 评论 -
三次握手和四次挥手
TCP建立连接的三次握手三次握手,是指建立一个TCP连接时,需要客户端与服务端之间总共传递三个包三次握手同步了连接双方的序列号和确认号并交换了TCP窗口大小信息,客户端执行connect()时,自动触发三次握手1.第一次握手:建立连接时,客户端A发送SYN包到服务端B,并进入SYN_SEND状态,等待服务端确认2.第二次握手:服务端B收到SYN包,确认客户端的SYN后,向客户端发送一个SY...原创 2019-07-21 11:51:09 · 104 阅读 · 0 评论 -
进程的调度算法
进程的调度算法.先来先服务(FCFS)调度算法FCFS调度算法是一种最简单的调度算法,该调度算法既可以用于作业调度也可以用于进程调度。在作业调度中,算法每次从后备作业队列中选择最先进入该队列的一个或几个作业,将它们调入内存,分配必要的资源,创建进程并放入就绪队列。在进程调度中,FCFS调度算法每次从就绪队列中选择最先进入该队列的进程,将处理机分配给它,使之投入运行,直到完成或因某种原因而阻塞...原创 2019-06-19 19:30:23 · 151 阅读 · 0 评论 -
Linux插件相关
Linux上常用的编辑器1 、VimVim是从 vi 发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,和Emacs并列成为类Unix系统用户最喜欢的编辑器。2 、EclipseEclipse是最受程序员亲睐的代码编辑器之一,它拥有代码高亮和智能提示等强大的功能。在Eclipse中,你可以完全胜任以下编程语言的工作——Python, R, Ruby, JavaSc...原创 2019-05-23 18:16:54 · 526 阅读 · 0 评论 -
Linux基本命令2
shell命令及运行原理:shell是什么?—命令行解释器用户为什么不能直接使用shell:解释用户功能–解释操作系统执行结果shell命令是什么?大佬们对操作系统常用操作的封装,一个个的程序用户输入ls字符串,shell捕捉用户输入,得到ls字符串,认为用户想要浏览目录,执行shell命令ls这个程序,完成目录浏览功能权限:linux下的用户分类:管理员–root,普通用户...原创 2019-05-11 11:04:54 · 158 阅读 · 0 评论 -
文件描述符+文件流指针+缓冲区
文件描述符fd文件描述符就是一个小的正整数,是内核中文件描述信息结构体数组的下标,对应有一个文件描述信息来操作文件当我们打开文件时,操作系统在内存中要创建相应的数据结构来描述目标文件。于是就有了file结构体。表示一个已经打开的文件对象。而进程执行open系统调用,所以必须让进 程和文件关联起来。每个进程都有一个指针files, 指向一张表files_struct,该表最重要的部分就是包涵一个指针数...原创 2019-08-17 18:45:55 · 1185 阅读 · 0 评论