操作系统
文章平均质量分 59
LI大大
爱好广泛
展开
-
使用telnet命令调试dubbo接口
1.首先查看是否安装telnet,命令 yum list installed | grep telnet2.确认已安装后,命令:telnet ip 端口号(这里的ip地址是运行服务的机器ip,端口号是dubbo服务端口号,一般情况下端口号为默认端口号 20880)3.查看有哪些接口类:ls4.查看接口下的方法:ls -l 接口名5.以json的格式传递参数,调用接口方法...原创 2020-03-30 21:01:08 · 1322 阅读 · 1 评论 -
【Linux】线程同步与互斥
线程同步与互斥1、mutex(互斥量)(1)初始化互斥量第一种方法:静态分配 pthread_mutex_t mutex=PTHREAD_MUTEX_INITIALIZER第二种方法 :动态分配 int pthread_mutex_init(pthread_mutex_t* restrict mutex,const pthread_mutexattr_t *restrict a...原创 2018-05-01 22:42:33 · 169 阅读 · 0 评论 -
生产者消费者模型
生产者消费者模型一个交易场所,两个对象,三种关系。消费者与消费者:互斥 生产者与生产者:互斥 生产者与消费者:同步且互斥下面是一个三个生产者与三个消费者的模型:#include<stdio.h>#include<pthread.h>#include<unistd.h>#include<stdlib.h>#define C...原创 2018-05-01 22:53:10 · 166 阅读 · 0 评论 -
读者写者模型
读者写者模型读者与写者之间的关系: 读者与读者:无关系 写者与写者:互斥 读者与写者:互斥注:写独占,读共享,写锁优先级高。读写锁接口://1.初始化int pthread_rwlock_init(pthread_rwlock_t *restrict rwlock,const pthread_rwlockattr_t *restrict attr);//2.销毁int...原创 2018-05-01 23:23:18 · 226 阅读 · 0 评论 -
【Linux】信号捕捉
1、内核如何实现信号的捕捉:(1)如果信号的处理动作是用户自定义函数,在信号递达时就调用这个函数,这称为信号捕捉。(2)范例: 用户程序注册了SIGQUIT信号的处理函数sighandler。当前正在执行main函数,这时发生中断或异常切换到内核态。在中断处理完毕后要返回用户态的main函数之前检查到有信号SIGQUIT递达。内核决定返回用户态后不是恢复main函数的上下...原创 2018-04-24 21:41:09 · 383 阅读 · 0 评论 -
【Linux】gdb 调试多进程
首先写一个两个进程运行的程序:#include<stdio.h>#include<pthread.h>#include<errno.h>void A_process(){ int i=0; while(1) { sleep(1); printf("father:%d i=%d\n",ge...原创 2018-04-24 23:36:39 · 213 阅读 · 0 评论 -
进程间关系
1、进程组 进程组是一个或多进程的集合。通常,它们同一作业相关联,可以接收来自同一终端的各种信号。每个进程组有一个唯一的进程组id。每个进程都可以有一个组长进程。组长进程的标识是,其进程组id等于其进程id。组长进程可以创建一个进程组,创建该组中的进程,然后终止。只要在某个进程组中一个进程存在,则该进程组就存在,这与其组长进程是否终止无关。 ‘&’ :表示将进程组放在后台执行...原创 2018-04-26 12:05:37 · 414 阅读 · 0 评论 -
信号量的应用
信号量 1、信号量和P、V原语信号量和P、V原语由迪杰斯特拉提出互斥:P、V在同一个进程中 同步:P、V在不同进程中信号量值含义: (1)S&gt;0: S表示可用资源的个数。 (2)S=0:表示无可用资源,无等待进程。 (3)S&lt;0: |S|表示等待队列中进程个数。P原语:P(s){ s.value = s.value--; if(...原创 2018-05-04 21:49:22 · 816 阅读 · 0 评论 -
【Linux】 “常用操作指令”及“gdb调试命令”
一、文件操作指令<一>常用的文件操作命令1.ls指令-a 列出目录下所有文件,包括以.开头的隐藏文件。 例:ls -a-d:将目录文件像文件一样显示,而不是显示其下文件-i:输出文件的i结点索引信息-k:以k字节的形式表示文件的大小-l:列出文件的详细信息-n:用数字的UID,GID代替名称-F:在每个文件名后附上一个字符以说明该文件的类型-r:对目录反向排序-t:以时间排序-s:在...原创 2017-11-30 23:24:40 · 560 阅读 · 0 评论 -
守护进程
守护进程1、守护进程也称精灵进程(daemon),是运行在后台的一种特殊进程。它独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件。Linux的大多数服务器就是用守护进程实现的。比如,ftp服务器,ssh服务器,Web服务器httpd等。同时,守护进程完成许多系统任务,比如,作业规划进程crond等。2、 Linux系统启动时会启动很多系统服务进程,这些系统服务进程没有控制终端...原创 2018-04-26 22:28:07 · 274 阅读 · 0 评论 -
【Linux】操作系统之线程
进程博客:https://blog.csdn.net/lz201788/article/details/79679380线程在一个程序里的一个执行路线就叫做线程(thread)。更准确的定义是:线程是一个进程内部的控制序列。一切进程至少都有一个执行线程。进程与线程: 1.进程是资源竞争的基本单位。 2.线程是程序执行的最小单位。 3.线程共享进程数据,但也拥有自己的一部分数据。 ...原创 2018-05-01 22:05:17 · 180 阅读 · 0 评论 -
【Linux】管道
【什么是管道】 (1)管道是Unix中最古老进程间通信的形式 (2)我们把从一个进程连接到另一个进程的一个数据流称为一个“管道”。 【匿名管道】( pipe ) 管道是IPC最基本的一种实现机制。我们都知道在Linux下“一切皆文件”,其实这里的管道就是一个文件。管道实现进程通信就是让两个进程都能访问该文件。 管道的特征: ①只提供单向通信,也就是说,两个进程都能访问这个文件,...原创 2018-03-30 12:54:13 · 740 阅读 · 0 评论 -
【Linux】了解进程
【进程基本概念: (1)课本概念:程序的一个执行实例,正在执行的程序等。 (2)内核观点:担当分配系统资源(CPU时间、内存)的实体。操作系统在管理进程时,先将其描述起来,再对其组织管理。 【描述进程-PCB: (1)进程信息被放在一个叫做进程控制块的数据结构中,可以理解为进程属性的集合。 (2)课本上称之为PCB(process control block)(进程控制块),Linu...原创 2018-03-24 23:48:07 · 227 阅读 · 0 评论 -
【Linux】makefile文件
makefile介绍:【1】 make命令执行时,需要一个 makefile 文件,以告诉make命令如何去编译和链接程序。【2】这里通过一个例子让我们更直观的去了解它的编写规则,我们的规则是:1)如果这个工程没有编译过,那么我们的所有c文件都要编译并被链接。 2)如果这个工程的某几个c文件被修改,那么我们只编译被修改的c文件,并链接目标程序。 3)如果这个工程的头文件被改变了,那...原创 2018-04-07 22:11:16 · 250 阅读 · 0 评论 -
【Linux】C语言实现进程间通信
首先创建一个server.c文件与client.c文件,使用Makefile将这两个文件管理起来。 Makefile文件:.PHONY:allall:server clientserver:server.c gcc $^ -o $@client:client.c gcc $^ -o $@.PHONY:cleanclean: rm server ...原创 2018-03-31 12:59:49 · 2050 阅读 · 0 评论 -
【Linux】进程信号
一、首先,用 kill -l 命令可以查看系统定义的信号列表: 每个信号都有一个编号和一个宏定义名称,这些宏定义可以在 signal.h 中查看,例如:#define SIGINT 2 。编号34以上的信号为实时信号。二、信号常见的三种处理方式:(1)忽略此信号。(SIG_IGN) (2)执行信号的默认处理动作。(SIG_DFL) (3)提供一个信号处理函数,捕捉信号进行自定义...原创 2018-04-16 23:21:56 · 218 阅读 · 0 评论 -
【Linux】进程控制
一、进程的创建 有两个函数(fork / vfork)可以在已存在的进程中创建一个新进程。新进程为子进程,原来的进程为父进程。子进程就是将父进程万全的拷贝了一份。1.fork#include<unistd.h>pid_t fork( );返回值:子进程返回0,父进程返回子进程的进程id,出错返回-1。fork函数对父进程的拷贝是深拷贝(写实拷贝),有自己独立的空...原创 2018-04-12 18:51:28 · 221 阅读 · 0 评论 -
一个简易的shell
shell本质上就是将进程程序替换替换原理:用fork创建子进程后执行的是和父进程相同的程序(但有可能执行不同的代码分支),子进程往往要调用一种exec函数以执行另一个程序。当进程调用一种exec函数时,该进程的用户空间代码和数据完全被新程序替换,从新程序的启动例程开始执行。调用exec并不创建新进程,所以调用exec前后该进程的id并未改变。 替换函数:有六种以exec开头的...原创 2018-04-12 22:26:27 · 810 阅读 · 0 评论 -
【Linux】消息队列
一、消息队列1.消息队列提供了一个从一个进程向另外一个进程发送一块数据的方法。 2.每个数据块都被认为是有一个类型,接受者进程的数据块可以有不同的类型值。 3.消息队列也有管道一样的不足,就是每个消息的最大长度是有上限的(MSGMAX),每个消息队列的总的字节数是有上限的(MSGMNB),系统上消息队列的总数也有一个上限(MSGMNI)。 IPC对象数据结构: 消息队列结构...原创 2018-04-06 22:07:59 · 352 阅读 · 0 评论 -
基础I/O
基础I/O,也就是输入/输出。下面介绍一些常用的文件操作函数。 1. fopen( ) / fclose( ) 这两个函数每次都是结伴出现,用fopen打开文件,用close关闭文件。 在结尾位置将文件关闭 fclose(fp); #include<stdio.h>#include<string.h>int main(){原创 2018-03-22 21:36:15 · 485 阅读 · 0 评论