
Linux操作系统
文章平均质量分 80
wwxjya
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Linux下的重要目录
原创 2018-04-03 17:52:52 · 99 阅读 · 0 评论 -
多线程的同步与互斥——读者写者模型
在读者写者模型中,同样有“一二三”,一个交易场所,两种角色,三种关系。在读者写着模型中,读者与读者之间是共享的关系,因为并没有改变资源,所以不需要互斥;写者与写者之间是互斥的关系;读者与写者之间是同步与互斥的关系。那么如何实现这么复杂的关系呢?读写锁可以帮助我们进行完成以上同步与互斥关系:int pthread_rwlock_init(pthread_rwlock_t *re...原创 2018-07-23 16:37:51 · 927 阅读 · 0 评论 -
多线程的同步与互斥---生产者与消费者模型
生产者与消费者模型是多线程同步与互斥应用的一个典型场景,在这个模型中我们要实现:一个交易场所;两种角色(一个是生产者,一个是消费者);三种关系(互斥,同步,同步与互斥)。值得注意的是,消费者与消费者,生产者与生产者之间都是互斥的关系;而生产者与消费者之间是同步与互斥的关系。说到这里就不免要解释一下线程的同步与互斥是什么了?简单来说,互斥就是同一个资源,互斥双方不能同时访问;而同步就...原创 2018-07-23 16:13:52 · 1215 阅读 · 0 评论 -
Linux查看系统负载的常用命令
top:查看系统整体状态uptime:与top的第一行相似主要描述的是01:33:50:当前时间,4 users:用户连接数load average:系统平均负载,最近1/5/15分钟的系统平均负载w:第一行与top的第一行相似。USER :登录的用户名 TTY :登录后系统分配的终端号 FROM:远程主机名,即从哪儿登录来的 LOGIN@:何时登录 IDLE:空闲了多长时间,表示用户闲置的时间。...原创 2018-07-08 17:20:44 · 1016 阅读 · 0 评论 -
信号
一、信号什么是信号?当我们运行一个前台进程时,通过键盘Ctrl+C可以输入一个硬件中断,如果CPU当前正在执⾏这个进程的代码,则该进程的⽤户空间代码暂停执⾏,CPU从⽤户态 切换到内核态处理硬件中断。终端驱动程序将Ctrl-C解释成⼀个SIGINT信号,记在该进程的PCB中(也可以说发送了⼀ 个SIGINT信号给该进程)。当某个时刻要从内核返回到该进程的⽤户空间代码继续执⾏之前,⾸先处理PCB...原创 2018-06-14 15:28:14 · 328 阅读 · 0 评论 -
进程间通信
一、进程间通信为什么要有进程间通信?数据传输:⼀个进程需要将它的数据发送给另⼀个进程资源共享:多个进程之间共享同样的资源。通知事件:⼀个进程需要向另⼀个或⼀组进程发送消息,通知它(它们)发⽣了某种事件(如进程 终⽌时要通知⽗进程)。进程控制:有些进程希望完全控制另⼀个进程的执⾏(如Debug进程),此时控制进程希望能够拦 截另⼀个进程的所...原创 2018-05-29 11:26:55 · 183 阅读 · 0 评论 -
基础I/O
一、系统I/O(一)与文件相关的系统调用:1、open:#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>int open(const char *pathname, int flags);int open(const char *pathname, int flags, mode...原创 2018-05-22 20:26:45 · 188 阅读 · 0 评论 -
进程控制
一、进程的创建在Linux操作系统中,可以用fork 和 vfork进行创建一个子进程。(一)forkpid_t fork();//子进程返回0;父进程返回子进程的pid使用该函数可以创建一个子进程,那么该函数是如何工作的呢?答:首先,调用fork后,系统内核会分配新的内存块和内核数据结构给子进程;其次,将父进程的部分数据结构内容拷贝至子进程;然后,添加子进程到系统进程列表中;最后,fork返回...原创 2018-05-13 18:13:00 · 298 阅读 · 0 评论 -
环境变量
基本概念:一般指操作系统中用来指定操作系统运行环境的一些参数;环境变量一般具有特殊用途,并且具有全局特性。查看环境变量:查看所有环境变量:env查看指定环境变量:env | grep PATHecho $PATH常见环境变量:1 PATH :指定命令的搜索路径我们运行一个简单的程序:int main(){ printf("hello!\n"); return 0; ...原创 2018-05-06 22:32:36 · 211 阅读 · 0 评论 -
模拟实现shell
#include <stdio.h>#include <assert.h>#include <unistd.h>#include <sys/wait.h>#include <stdlib.h>#include <string.h>char* argv[8];//定义命令行参数列表int argc = 0; //定...原创 2018-05-18 16:04:44 · 253 阅读 · 0 评论 -
进程概念
基本概念:进程是程序的一个执行实例;从内核来看,进程是担当分配系统资源的实体。 注:在Linux操作系统中,大多数指令都是创建了一个个的进程。操做系统如何管理内存?答: 使用一个结构体(PCB)来描述进程; 使用高效的数据结构来组织进程。描述进程--PCB(process control block): 进程的信息被放在一个叫做进程控制块的数据结构中,可以理解为进程...原创 2018-05-06 14:40:51 · 252 阅读 · 0 评论 -
Linux多线程
一、什么是线程什么是线程? 线程是进程中一个单一顺序的执行流。我们可以假设这样一个场景,有100道数学题,我做完一道数学题需要1分钟,做完100道需要100分钟;如果我有两个脑袋,其中一个脑袋做前50个题,另外一个脑袋做后50个题,这样我就可以省下一半的时...一个进程中可以有多个线程,这就意味着,完成一件任务,每个线程可以完成一部分,各个线程合作完成一件工作,会大大提高...原创 2018-07-19 15:34:20 · 271 阅读 · 0 评论