
Linux
Python_programer
书山有路勤为径,学海无涯苦作舟!
展开
-
linux之进程
今天分享一个关于自己总结的进程的知识点1.进程的概念在谈进程之前先说下操作系统这个名词,操作系统是什么?简单的说操作系统就是一个为了让计算机更加好用,对计算机上的软硬件进行管理的软件。现在回归正题,进程是什么?从用户角度来说,进程就是运行中的程序。从操作系统角度来说,进程就是操作系统对运行中程序的描述信息,即进程描述符–统称PCB。描述信息包括:程序计数器,上下文数据,内存指针,记账...原创 2019-03-31 21:02:32 · 243 阅读 · 0 评论 -
Linux之生产者与消费者模型
今天讲下Linux里一个很重要的概念 “生产者与消费者模型” :1.生产者与消费者模型的概念生产者于消费者模型其实很常用,因为在实际开发中经常会遇到这种情况就是,一个模块负责生产数据,而另一个模块负责处理数据,在这里就可以认为这个生产数据的模块就充当了生产者的角色而这个处理数据的模块就充当了消费者的角色,而生产者生产的数据需要一个地方存储,就可以是一个仓库,这个仓库是练习生产者与消费者的...原创 2019-05-22 15:09:24 · 586 阅读 · 0 评论 -
Linux之线程安全
上一节我讲了Linux线程的一些基础知识,返现多线程是不安全的,会引发安全问题,所以今天就来讲一下Linux线程安全一节的内容!1.线程安全概念线程安全:多个线程同时操作临界资源不会出现数据二义性2.线程安全的实现这里要引入两个概念:同步与互斥同步:临界资源访问的时序可控互斥:临界资源访同一时间的唯一访问性临界资源:多线程执行流共享的资源原子性:不会被任何调度机制打断的操作,该操作...原创 2019-05-16 15:46:27 · 378 阅读 · 0 评论 -
Linux之线程(1)
今天讲下Linux线程这块的知识,我想很多人应该都知道多线程的重要性,现在多线程被运用在项目中的次数越来越多,而且面试中多线程也是必问的,所以要引起我们足够的重视将这块的知识学扎实。1.线程的概念在说线程之前我们不得不提到进程,从用户角度来说:进程是运行中的程序;操作系统角度来说:进程是操作系统对运行中程序的描述信息–进程描述符–pcb。线程:在一个程序里的一个执行路线或者说是:线程是一个...原创 2019-05-14 14:46:36 · 251 阅读 · 0 评论 -
linux之进程间通信(管道)
今天来谈谈进程间通信:进程间通信简称也叫ipc!基本介绍:操作系统提供给用户的几种进程间通信方式。操作系统为什么要给用户提供进程间通信方式:进程的独立性(虚拟地址空间加页表)----提供一个公共的媒介。进程间通信是干什么的:进程间数据传输,数据共享,进程控制,事件通知,也正因为有不同的应用场景(不同的需求)因此操作系统也提供了多种不同的进程间通信方式继承于unix而来的管道(匿名管道/命...原创 2019-04-25 17:31:08 · 755 阅读 · 1 评论 -
Linux之动态/静态库
今天讲一下关于动静态库的生成和使用:编写简单的加减乘除运算函数并打包成动/静态库,并分别使用我将加减生成的是静态库,乘除生成的是动态库。c/c++程序编译的过程:1.预处理 :展开头文件,宏定义,条件编译处理等。通过gcc -E source.c -o source.i2.编译:这里是一个狭义编译意义,指的是将预处理后的文件翻译成汇编代码的过程。通过gcc -S source.i生成,默...原创 2019-04-18 22:53:11 · 474 阅读 · 0 评论 -
剑指offer_02 从尾到头打印链表
今天分享一道剑指offer上的题:从尾到头打印链表题目要求:输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。解题思路:首先看到从尾到头打印这句话,就应该记住栈的使用,栈的原则就是后进先出,所以这道题拿栈解决会比较简单,将链表中的元素先依次都压入栈中,然后依次弹出存到数组中。实现代码:class Solution {public: vector<int> ...原创 2019-04-25 22:33:05 · 360 阅读 · 0 评论 -
Linux之自主实现minishell重定向功能
今天分享关于Linux下自主实现minishell重定向功能:1.首先重定向是什么意思呢?Linux重定向是指修改原来默认的一些东西,对原来系统命令的默认执行方式进行改变,比如说简单的我不想看到在显示器的输出而是希望输出到某一文件中就可以通过Linux重定向来进行这项工作,操作句柄为文件描述符,可以将文件描述符想象成两个指针,相当于指针所指的内容变了。2.Linux下常用的shell重定向...原创 2019-04-16 22:59:38 · 406 阅读 · 0 评论 -
Linux之进程控制
今天分享一下关于Linux进程控制的知识点1.进程创建fork( )函数#include<unistd.h>pid_t fork(void);通过返回值判断是否创建成功,分流父子进程对于父进程,返回的是子进程的pid>0对于子进程,返回的是0创建过程:通过复制调用父进程,创建一个新的进程(子进程)。复制的父进程的pcb,复制了父进程大部分的数据,因此代码共享,...原创 2019-04-08 15:44:05 · 430 阅读 · 0 评论 -
Linux里的fork,popen,system函数
今天介绍一下Linux里fork,popen,system三个函数:1.fork函数fork函数是通过复制父进程来创建子进程,父子进程代码共享数据独有,这是一种分时拷贝技术,相对于vfork函数来说有较大的改进之处,返回值是来分流父子进程,对于父进程返回的是子进程的pid>0,对于子进程,返回的是0。从图中可以看到它是一个系统调用函数2.system函数system函数可以看作是...原创 2019-04-11 16:52:43 · 517 阅读 · 0 评论 -
linux实现一个简易的minishell
今天分享linux下实现一个简易的minishell程序:我使用的xshell6写的程序,不知为什么就是看不惯centos6的黑框框,,,通常连接xshell6后进入就是如下图所示:用户可以输入一系列指令然后会将结果显示出来,如上图所示所以要写一个简易shell需要遵循以下过程:1.获取命令行2.解析命令行3.建立一个子进程(fork)4.替换子进程(execvp)5.父进程等...原创 2019-04-06 20:31:31 · 679 阅读 · 0 评论 -
Linux之posix信号量
今天来讲下POSIX信号量,用于同步操作,达到无冲突的访问共享资源的目的,可以用于线程间同步。信号量就是一个计数器+等待队列+等待+唤醒1.信号量的基本接口1)初始化信号量int sem_init(sem_t *sem, int pshared, unsigned int value);sem:信号量变量pshared:0表示线程间共享,非0表示进程间共享(决定用于线程间还是进程间)...原创 2019-05-22 15:48:40 · 476 阅读 · 0 评论