Linux
文章平均质量分 81
叶梓梓
这个作者很懒,什么都没留下…
展开
-
关于Linux的简单操作命令
关于Linux的简单操作命令原创 2017-11-18 19:52:50 · 240 阅读 · 0 评论 -
死锁、读写者模型实现
在学习了线程之后,在上一博客中我模拟实现了生产者消费者模型,再模拟实现生产者消费者模型的时候我们都知道,若不加制约,可能生产者还没生产完消费者就来消费了,所以我们就需要互斥量和条件变量来进行制约。 而如何制约呢?莫非就是加个锁,当生产者要生产时先去申请这个锁,当申请到锁时,就去进行生产,当生产完了之后就去释放锁,然后消费者再去申请锁,然后再进行消费。接下来我们就来聊聊这...原创 2018-04-24 17:12:53 · 543 阅读 · 0 评论 -
进程的创建、等待以及退出
学习了进程的进步概念之后,接下来我们就来学习一下进程的创建、等待以及终止等。1、进程的创建 在Linux中,fork()函数是非常重要的函数,它从已存在的进程中再创建一个新进程。新进程为子进程,而原进程为父进程。(1) pid_t fork(void); 返回值:子进程返回0,父进程返回子进程id,出错返回-1; 进程调用fork(),当...原创 2018-03-29 16:47:44 · 1057 阅读 · 0 评论 -
进程间关系与守护进程
在我们学习完进程和线程之后,我们知道进程与进程之间是相互独立的,而线程与线程之间是有一定的联系的。那么进程与进程之间就真的没有关系吗?接下来就来学习一下进程间关系以及一个新的名词守护进程。 在学习进程间关系之前,我们来学习几个名词:1、进程组/作业/会话(1)进程组 我们在学习进程的时候就知道,每一个进程都有自己唯一的进程ID,那么今天我就要说,每一个进程除了...原创 2018-04-17 20:54:16 · 298 阅读 · 0 评论 -
进程信号
在学习进程间通信时,我们曾经学过一种方式叫信号量,它就相当于一个计数器,而当时我还在想信号量与信号有什么关系呢?其实信号量与信号是两件截然不同的事物。接下来我们就来学习一下信号,然后就会发现信号和信号量到底有什么不同? 在我们生活中,关于信号的例子特别多,比如红绿灯啊,手机、闹钟铃声啊,十二点的下课铃声啊等等都是一种信号。1、信号的基本概念(1)信号的引入 ...原创 2018-04-03 14:39:07 · 256 阅读 · 0 评论 -
线程的概念、控制、以及同步与互斥
在学习了进程过进程之后,我们就该来学习一下线程了,什么是线程呢?接下来我们就来学习一下。1、线程的概念 我们都知道,进程就是程序运行起来的实体,包括一大堆的数据结构,而线程是什么呢?我们应该听过一句话“线程是在进程内部运行的”,如何理解这句话呢?接下来带着问题我们来学习。(1)线程的概念 什么是线程?简单来说,线程就是一个程序里的执行流,更准确的说:线...原创 2018-04-10 20:48:35 · 254 阅读 · 0 评论 -
进程概念之孤儿与僵尸
在了解了进程是什么后,接下来我们来了解一下进程的其他相关。 进程可以使用命令来进行查看 进程的信息可以通过/proc系统文件夹查看;(如要查看PID为1 的进程信息,需要查看/proc/1这个文件夹)大多数进程信息同样也可以用top和ps这些用户级工具来获取 通过系统调用获取进程标识符的方法: 进程ID(PID):调用函数getpid(); 父进程I...原创 2018-03-27 18:01:27 · 145 阅读 · 0 评论 -
进程的概念之PCB
学习过操作系统的人应该都对于进程这两个不会陌生,当然没学过操作系统的人应该也听过进程这个词,但是进程是什么呢?接下来,就来学习一下进程的相关信息。从用户角度看:进程是程序的一次动态执行过程,也就是说,只有当一段程序执行起来,它才能称为进程。从操作系统角度看:进程是操作系统分配系统资源(CPU时间,内存)的基本单元,也是最小单元。 进程需要相关的数据结构管理,PCB进程控...原创 2018-03-26 22:17:02 · 2138 阅读 · 0 评论 -
进程间通信之信号量
在学习了进程间通信的前几种方式管道,消息队列、共享内存之后,进程间通信的另一种方式——信号量。 在学习信号量之前,需要先理解几个名词。 互斥:由于各进程要求共享资源,而有些资源需要互斥使用,因此各进程间需要竞争使用这些资源,这种关系为进程的互斥。 同步:多个进程需要相互配合共同完成一项任务。 ...原创 2018-03-24 19:24:47 · 1708 阅读 · 0 评论 -
进程间通信之共享内存
继学习过进程间通信的两种方式管道和消息队列之后,接下来就要学习一个速度最快的进程间通信的方式——共享内存。 为什么说共享内存是最快的IPC形式呢?因为它省掉了两次数据拷贝的过程。一旦这样的内存映射到共享他的进程的地址空间,这些进程间数据传递不在涉及到内核(就是进程不在通过执行进入内核的系统调用来传递数据)。 1、共享内存的示意图 2...原创 2018-03-24 13:43:16 · 211 阅读 · 0 评论 -
进程替换以及简单实现简易shell
在前面学习了进程的创建、等待、退出之后,我们知道了在有些时候子进程和父进程会共享地址空间,比如在Vfork()函数调用的时候,所以,今天我们来学习一下进程替换和一个简单的小程序。1、进程程序替换 (1)替换原理 用fork创建子进程后执行的是和父进程相同的程序(但有可能执行不同的代码分支),子进程往往要调用一种exec函数来以执行另一个程序。当进程调用一种exec函数...原创 2018-03-29 19:01:09 · 325 阅读 · 0 评论 -
进程间通信之消息队列
在简单了解了进程间通信之后,我们知道进程间通信的方式不止有管道,还有其他的system V IPC资源。其中就有消息队列。原创 2018-03-23 10:01:26 · 234 阅读 · 0 评论 -
进程间通信之管道
在谈到进程的概念时,大多数人的第一反应可能就是PCB(就是进程控制块), 当然这是对的,因为PCB是进程存在的唯一标示,但与此同时我们还要想到虚拟地址空间、页表、物理地址以及三者之间的映射关系。 在学习了进程后,接下来就要进行深入的理解有关进程的内容。 我们都知道,进程具有独立性,进程之间一般不会相互影响。但也有特殊情况,比如说进程间通信。...原创 2018-03-21 22:54:46 · 252 阅读 · 0 评论 -
网络协议初识、传输流程
在学习网络之前,我们先来了解一下计算机网络的背景。1、计算机网络背景 首先我们要提一个问题,网络是什么?接下来,我们就来谈谈网络。 我们知道,我们的电脑硬件之间都是由线连接的,而正是由这些线和硬件软件构成电脑,现在我们来举个例子,当我们把电脑拆开,然后把每个硬件都分在不同的区域,但是之间依旧用先连接,这样还是一台电脑,不过就是硬件之间的线变得长了一点而已。这就叫做网络。(1...原创 2018-05-07 22:14:07 · 1606 阅读 · 0 评论