![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux
文章平均质量分 80
Nicole xu
这个作者很懒,什么都没留下…
展开
-
Linux--目录权限以及进行增删查改等文件操作时需要的权限
1.目录的权限:(1)文件或目录的访问权限分为只读“r”、只写“w”、可执行“x”三种; (2)以文件为例,只读权限表示只允许读其内容,而禁止对其做任何更改操作。可执行权限表示允许将文件作为一个程序执行。文件被创建时,文件所有者自动拥有对文件的读、写和可执行权限,以便于对文件的阅读和修改。2.进入目录需要的权限:(1)首先创建一个目录temp; (2)将目录temp的权限值设为...原创 2017-12-10 21:55:36 · 1903 阅读 · 2 评论 -
Linux--守护进程
什么是守护进程1.守护进程:在后台运行,且不受终端控制的一种进程。 2.通过ps axj | more指令可以查看到Linux下的守护进程[root@localhost 进程组]# ps axj | morePPID PID PGID SID TTY TPGID STAT UID TIME COMMAND 0 1 1 1 ...原创 2018-07-01 21:30:04 · 10459 阅读 · 1 评论 -
Linux--进程间通信之管道
进程间通信介绍1.进程间通信:在不同的进程间传播或交换信息。 2.进程间通信的方式:管道、消息队列、共享内存、信号量、socket(套接字)等。 3.进程间通信的本质:让不同的进程看到同一份资源。进程间通信的目的1.数据传输 2.资源共享 3.通知事件 4.进程控制管道1.管道通常指匿名管道,是Unix中最古老的进程间通信方式。 2.我们把从一个进程连接到另一个...原创 2018-06-20 10:45:27 · 253 阅读 · 0 评论 -
Linux--进程间通信之消息队列
什么是消息队列1.消息队列,是消息的链接表,存放在内核中。 2.一个消息队列由一个标识符(即队列ID)来标识。 3.因为消息队列其实就是一个链表,所以往消息队列里面发送数据就等价于向链表里面插入一个消息结点,从消息队列里面取数据就等价于访问该结点,访问完后再删除这个结点。消息队列的特点1.消息队列可用于任意两个进程进行进程间通信(只要这两个进程能够看到同一个消息队列就可以); 2...原创 2018-06-20 11:36:00 · 587 阅读 · 0 评论 -
Linux--进程间通信之共享内存
什么是共享内存共享内存是能够同时被多个进程看到的一段物理内存。(注意这里是物理内存)。共享内存的原理1.先在物理内存中申请一块内存; 2.将这段物理内存通过页表映射到多个进程的虚拟地址空间中; 3.一个进程往自己的虚拟地址空间上写就相当于往物理内存里写,其它进程从自己的虚拟地址空间里读就相当于从那段相同的物理内存里读; 4.这段公共的物理内存就是多个进程看到的同一个资源,这段物理...原创 2018-06-20 16:02:29 · 231 阅读 · 0 评论 -
Linux--进程间通信之信号量(system V版本的信号量)
引入信号量之前,我们先要了解四个基本概念,什么是临界资源与临界区,什么是同步与互斥。临界资源与临界区的概念1.临界资源:对于某些共享资源,一次仅允许一个进程访问,这个资源就称为临界资源。 2.临界区:访问临界资源的那些代码称为临界区。同步与互斥1.互斥:对于某种资源,如果有一个进程正在访问该资源,则其它的进程必须等待,当那个进程访问完成后其它进程才能访问。 2.同步:某些进...原创 2018-06-20 16:36:46 · 265 阅读 · 0 评论 -
Linux--线程控制及线程标识的探索
1 线程控制1.1 线程的创建1.通过pthread_create函数来创建线程 (1)函数原型:#include <pthread.h>int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg);(2...原创 2018-07-16 10:44:44 · 550 阅读 · 0 评论 -
Linux--线程同步与互斥
1 线程同步与互斥的引入 互斥:对于某种资源,如果有一个进程正在访问该资源,则其它的进程必须等待,当那个进程访问完成后其它进程才能访问。 同步:某些进程的运行必须严格按照规定的某种先后次序来运行,这种先后次序依赖于要完成的特定的任务。 1.由于同一个进程之间的线程很多东西是共享的,就会使得多个线程看到同一份资源,不同线程都可以访问该共同资源。如果多个线程并发的访问某个共享资源...原创 2018-07-18 00:16:01 · 435 阅读 · 0 评论 -
Linux--线程的基本概念,线程与进程的区别
一.线程的概念1.线程是进程内部的一个执行分支。 2.线程是程序执行的最小单位。 3.线程是在进程的地址空间内运行。 4.在Linux下,没有真正意义上的线程,线程是用进程模拟的,线程称为轻量级进程。 5.创建一个线程比创建一个进程的粒度小的多(因为创建进程需要分配PCB,需要分配资源,而线程只需要将资源给某个线程)。 6.一个进程里面的线程大部分资源共享,只有少部分独立(独立的东西...原创 2018-07-15 18:30:21 · 638 阅读 · 0 评论 -
Linux-- 进程的等待的方式比较(wait、witpid、忽略SIGCHILD信号)
写在前面1.前面已经介绍了,进程等待的相关知识,以及进程等待的必要性:https://blog.csdn.net/xu1105775448/article/details/80171244 2.上一篇关于信号的博客里介绍了Linux下一种又一种进程等待方式:https://blog.csdn.net/xu1105775448/article/details/80771363下面通过代码,...原创 2018-06-23 19:50:36 · 1318 阅读 · 0 评论 -
Linux--信号
什么是信号1.在现实生活中,我们过马路看到的红绿灯就是一种信号,铃声也是一种信号,根据不同的信号我们有着不同的处理方式。 2.在Linux中信号也是类似的,就是提供一种机制告诉进程 该怎么做。信号列表1.通过kill -l命令可以查看系统定义的信号:[xutingting@localhost Desktop]$ kill -l1) SIGHUP 2) SIGINT ...原创 2018-06-22 11:27:10 · 272 阅读 · 0 评论 -
Linux--实现一个简易的Shell(可以获取命令提示符,支持管道)
Shell的实现过程1.从标准输入获取命令行; 2.对用户输入的命令行进行解析,解析出要执行的指令和参数; 3.创建一个子进程; 4.子进程进行程序替换,父进程等待; 5.当子进程执行完毕,父进程从wait中返回,继续下一次循环。shell命令提示符(1)一般的shell输入命令之前都会有命令提示符:[root@localhost 进程替换]# root为用户名,...原创 2018-05-14 17:10:42 · 4872 阅读 · 2 评论 -
Linux--进程的创建
一.进程创建有三种方式(这里主讲fork及vfork)1.fork2.vfork3. clone二.fork函数1.fork用于创建一个新进程;2.fork函数没有参数,且有两个返回值,如果fork失败返回-1,如果成功,父进程返回子进程pid,子进程返回0; (pid_t fork( ));3.当进程调用fork时,内核会做如下的事情:分配新的控制块和内核数据结构给子进程;将父进程的部分数据和...原创 2018-05-02 20:12:23 · 233 阅读 · 0 评论 -
Linux--进程的等待
一.进程等待的必要性1.如果子进程退出,父亲还在继续执行而且不接收子进程的退出信息,则子进程就会变成僵尸进程。2.僵尸进程有很多的危害,会造成内存泄露等;3.僵尸进程无法通过kill -9杀死(因为僵尸进程已经死了,没有办法杀死已经死了的进程);4.父进程创建子进程会让子进程执行一些任务,我们必须要知道子进程将任务执行的如何,子进程是否正常退出。5.所以父进程通过进程等待的方式回收子进程的资源,获...原创 2018-05-02 20:23:26 · 262 阅读 · 0 评论 -
Linux--进程的基本概念(PCB,查看进程,获得进程的标识符)
一.PCB的引入1.当我们遇到一个结构时,我们要先描述它(描述它的基本信息),然后在组织它,对于进程我们也要这样做。2.描述进程:PCB(将进程的信息用一个结构体存储起来,这个结构体相当于一个结点)组织进程:用双向链表将PCB连接起来。(用双向链表将这些结点连接起来)二.描述进程--PCB1.PCB是一个struct。 为什么要用struct?因为在数据结构里面,一般的数据结构都会用到结...原创 2018-04-25 10:13:41 · 5871 阅读 · 0 评论 -
Linux--进程的7种状态,僵尸进程与孤儿进程
一.进程的七种状态1.七种状态如下:①R(运行状态)(这个状态并不是说明当前进程在CPU里运行,而是说当前进程处理运行队列里)②S(浅度睡眠状态)③D(深度睡眠状态)(不能被终止)④T(停止状态)⑤t (追踪状态)⑥X(死亡状态)⑦Z(僵尸状态)注意:状态后面带+表示前台进程,不带+表示后台进程(前台进程:当前只能有一个进程做事;后台进程:当前可以有很多进程做事)2.如何修改进程的状态?①首先创...原创 2018-04-25 10:24:53 · 1366 阅读 · 0 评论 -
Linux-- 如何使用命令安装gcc/g++, gdb, vim
(1)安装gcc :在root用户下yum install gcc 在安装完成后用which gcc查看是否安装成功;(2)安装g++ :在root用户下yum install gcc-c++ 在安装完成后用which g++查看是否安装成功;(3)安装gdb :在root用户下yum install gdb在安装完成后用which gdb查看是否安装成功;(4)安装vim :首先用y...原创 2017-12-05 22:18:19 · 369 阅读 · 0 评论 -
Linux -- 进程终止
进程退出场景(进程退出有三种场景)代码运行完毕,结果正确;代码运行完毕,结果不正确;代码异常终止。进程常见退出方式正常终止从main函数中return;调用exit;调用_exit.异常终止ctrl+c;被信号终止进程退出码1.如果进程正常终止,可以查看进程的退出码; 2.用echo $? 命令查看进程退出码 ①编写如下程序(从main...原创 2018-05-05 21:00:54 · 215 阅读 · 0 评论 -
Linux--进程的概念之进程的优先级
一.为什么进程会有优先级 因为每个进程要被执行(进程调度)必须要有明确的规定,谁先执行谁后执行也必须要规定,而如何决定先后顺序,就要有优先级,优先级高的进程先执行,优先级低的进程后执行。二.优先级的定义CPU分配资源的先后顺序,就是指进程的优先权。三.优先级与权限的区别1.我们知道操作系统里面有权限这个概念。那么权限和优先级之间又有什么区别呢?2.权限说明这个资源你能否拿到,而优先级表示这个资源...原创 2018-04-28 11:07:38 · 698 阅读 · 1 评论 -
Linux--进程程序替换
替换原理1.当fork创建子进程后,父进程与子进程执行相同的代码,往往子进程要调用exec函数去执行新的程序。(让一个进程去执行一个全新的程序) 2.当进程调用exec,则当前进程的代码和数据全部被替换,堆和栈也要重新分配。 3.调用exec成功没有返回值,失败返回-1.为什么调用成功没有返回值? 因为调用exec成功,则当前进程的代码和数据已经被替换,以前的堆和栈已经被销毁,返回...原创 2018-05-14 15:08:52 · 843 阅读 · 1 评论 -
IO多路复用--epoll
一.初识epoll1.epoll是Linux内核为处理大批量文件描述符而作了改进的poll; 2.epoll是Linux下多路复用IO接口select/poll的增强版本; 3.epoll能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。二.epoll相关的系统调用1.epoll_create (1)函数原型:#include <sys/e...原创 2018-07-27 15:21:52 · 302 阅读 · 0 评论