Linux
文章平均质量分 91
sky_Mata
这个作者很懒,什么都没留下…
展开
-
Linux内核态和用户态的切换
当一个任务(进程)执行系统调用而陷入内核代码中执行时,我们就称进程处于内核运行态(或简称为内核态)。此时处理器处于特权级最高的(0级)内核代码中执行。当进程处于内核态时,执行的内核代码会使用当前进程的内核栈。每个进程都有自己的内核栈。当进程在执行用户自己的代码时,则称其处于用户运行态(用户态)。即此时处理器在特权级最低的(3级)用户代码中运行。当正在执行用户程序而突然被中断程序中断时,此时用户程序也可以象征性地称为处于进程的内核态。因为中断处理程序将使用当前进程的内核栈。这与处于内核态的进程的状态有些类似。转载 2017-08-11 11:24:26 · 5908 阅读 · 0 评论 -
Shell学习笔记
1.shell脚本的特点(1)shell是一种弱类型语言(2)shell是一门解释型语言(3)shell没有数据类型(结构体),所以类型可以直接使用,不用先定义再使用,需要注意二义性(4)非编译2.shell脚本的执行方式(1)直接执行脚本./pid.sh 首先赋予chomd u+x pid.sh //只授予这个文件所属组的执行权限 然后就可以原创 2017-07-31 09:51:16 · 581 阅读 · 0 评论 -
作业、会话和守护进程
1.作业和进程组进程组:每个进程除了有一个进程ID之外,还属于一个进程组。进程组是一个或多个进程的集合。性质:(1)每个进程组都有一个唯一的进程组ID,存放在pid_t数据类型中,函数getpgrp返回调用进程的进程组ID。(2)每个进程组都有一个组长进程。组长进程的标识是,其进程组ID等于其进程ID。(3)进程组是否存在与其组长进程是否终止无关。进程组的生命周期从创建开始原创 2017-06-28 11:18:49 · 373 阅读 · 0 评论 -
crond/crondtab—Linux下的任务定时器
1.定时任务crond介绍1.1 crond是什么?crond是linux系统中用来定期执行命令或指定程序任务的一种服务或软件。 特殊需求:(秒级别)crond服务就无法搞定了,一般工作中写脚本守护进程执行。 1.2 为什么要使用crond定时任务?定时任务的作用: (1) 服务器:7*24小时开机提供服务是网站的基本特征 (2) 有重要数据:提高备份周期和备份数量1.3 linux系统的原创 2017-07-01 19:52:52 · 946 阅读 · 0 评论 -
TCP建立连接和断开连接过程的理解
为什么要三次握手而不是两次握手?主动断开的一方为什么要进入TIME_WAIT状态?为什么要四次挥手?原创 2017-07-11 15:01:23 · 808 阅读 · 0 评论 -
多线程编程总结(二)——条件变量和互斥锁
1.什么叫互斥锁?互斥锁(也成互斥量)可以用于保护关键代码段,以确保其独占式的访问,类似于二元信号量。二者都可以称为挂起等待锁———锁资源得不到满足,就会被挂起,在信号量或互斥锁上等待。注:当前线程的PCB在互斥量的等待队列等待以便快速唤醒。进程等待的本质是将PCB列入某个队列等待。2.使用方式 当进入关键代码段时,需要申请互斥锁,如果失败就挂起等待,将PCB列入互原创 2017-06-03 19:28:28 · 955 阅读 · 0 评论 -
对比线程安全和可重入函数
1.什么叫线程安全如果你的程序所在的进程中有多个线程在同时运行,而这些线程可能同时运行一段代码或同时访问一个对象,如果每次运行完这段代码或访问完这个对象之后,所得到的结果和单线程运行的结果一样,而其他变量的值也和预期的保持一致,那么就认为是线程安全的。 也就是说当多个线程同时运行同一段代码,不会造成资源的冲突,不会产生错误的结果就是线程安全的。如果有一段线程安全的代码原创 2017-06-07 18:04:40 · 2414 阅读 · 0 评论 -
多线程编程小结(一)
线程函数的介绍(pthread_create;pthread_join;pthread_exit;pthread_cancel) 线程与进程的区别 多线程的优点 分离线程的介绍原创 2017-05-28 22:23:52 · 4764 阅读 · 0 评论 -
Linux信号(二)——编写自己的mysleep函数
1.alarm函数和pause函数使用alarm函数可以设置一个时间值(闹钟时间),在将来的某个时刻这个值会被超过。当所设置的时间超过后,产生SIGALRM信号。如果不忽略或不捕捉此信号,则其默认动作是终止该进程。参数seconds的值是秒数,经历了指定的seconds秒后会产生信号SIGALRM。 #include unsigned int alarm(unsigned int原创 2017-06-18 16:10:33 · 740 阅读 · 0 评论 -
Linux信号(一)——子进程的异步等待方式
1.信号信号(是一种软件中断)是由用户、系统或者进程发送给目标进程的信息,以通知目标进程某个状态的改变或系统异常。2.信号的产生(1)前台进程,用户可以通过输入特殊终端字符来给它发送信号。比如Ctrl+C通常给进程发送一个中断信号——2号信号(SIGINT),只能终止前台进程。 (2)系统异常。比如浮点异常——8号信号(SIGFPE)。 (3)系统状态变化。比如alarm函原创 2017-06-16 18:50:22 · 1578 阅读 · 0 评论 -
shell的工作原理以及模拟实现shell
shell的工作原理以及详解exec函数进行程序替换的过程。原创 2017-05-15 21:49:53 · 6535 阅读 · 2 评论 -
进程间通信方式——信号量(Semaphore)
信号量的工作原理,进程通过信号量如何获得共享资源,详解与信号量有关的函数,sembuf的sem_flg标志设为SEM_UNDO的作用以及模拟实现二元信号量。原创 2017-05-19 01:26:32 · 24895 阅读 · 4 评论 -
进程间通信方式——消息队列
与消息队列的三个数据结构;和消息队列相关的函数;消息队列的工作模式。原创 2017-05-19 11:00:46 · 9383 阅读 · 0 评论 -
进程间通信方式——共享内存
进程间通信方式共享内存和与共享内存函数详解,以及模拟共享内存实现进程间通信,以及共享内存的优缺点。原创 2017-05-22 23:30:38 · 19405 阅读 · 0 评论 -
Linux文件权限以及Linux文件三个时间解释
Linux的文件属性;Linux怎么修改文件属性;umask查看或修改文件掩码原创 2017-03-13 20:10:41 · 978 阅读 · 1 评论 -
CentOS 升级编译安装GCC 4.8.1 + GDB 7.6.1 + Vim的简单配置(Taglist、WinManager插件)
vim的简单配置、Taglist、WinManager的插件的安装,以及如何升级gcc g++ 编译器以及gdb调试器来适应语言更新所带来的新特性。原创 2017-03-29 00:06:31 · 1200 阅读 · 0 评论 -
进程间的通信方式——pipe(管道)
详解进程间通信方式———管道;管道是如何实现进程间通信的;以及管道读取数据的四种方式,以及管道容量的大小。原创 2017-05-10 00:43:13 · 104776 阅读 · 20 评论