摘要: 概述 如果逻辑控制流在时间上重叠,那么它们就是并发的(concurrent),这种常见的现象称为并发(concurrency)。并发出现在计算机系统的各个层面上——硬件异常处理程序、进程和信号处理程序。以上提及的都在内核层面上的并发,其实并发不仅仅局限于内核,它也在应用程序中扮演重要的角色: 访问慢 阅读全文
posted @ 2017-05-16 20:51 west000 阅读(421) 评论(0) 推荐(0) 编辑
摘要: 概述 一组并发线程运行在同一进程上下文中,每个线程都有自己独立的 线程上下文 ,包括线程ID、栈、栈指针、程序计数器(PC)、条件码和通用目的寄存器值。每个线程和其它线程一起共享进程上下文的其他部分,包括整个用户虚拟地址空间(由代码段、读/写数据、堆以及所有共享库的代码和数据区组成)。线程也共享打开 阅读全文
posted @ 2017-05-16 20:48 west000 阅读(3206) 评论(0) 推荐(0) 编辑
摘要: 概述 信号 (signal)是一条消息,可以通知进程系统中发生了某种类型的事件。在Linux的shell中,我们可以通过“man 7 signal”获得Linux支持的所有信号类型。下图是Linux支持的30种信号: 每种信号都对应于某种系统事件。比如: 如果一个进程试图除以0,内核就会给该进程发送 阅读全文
posted @ 2017-05-16 20:44 west000 阅读(508) 评论(0) 推荐(0) 编辑
摘要: 概述 Posix线程(Pthreads)是C程序中处理线程的一个标准接口,Pthreads定义了大约60个函数,允许程序创建、杀死和回收线程,与对等线程安全地共享数据,还可以通知对等线程系统状态的变化。 常用函数 这里我们简单介绍几个常用的函数,下面我们通过一个简单的线程程序进行介绍: 线程的代码和 阅读全文
posted @ 2017-05-16 20:30 west000 阅读(352) 评论(0) 推荐(0) 编辑
摘要: 概述 进程 (process)是一个执行中的程序的实例,是操作系统资源调度的一个基本单位。系统的每个程序都是运行在某个 进程上下文 (process context)中的。 进程上下文 包括:存放在内存中的代码和数据,进程的栈、通用目的寄存器值、程序计数器、环境变量以及打开文件描述符的集合。 进程 阅读全文
posted @ 2017-05-16 20:17 west000 阅读(289) 评论(0) 推荐(0) 编辑
摘要: 概述 输入/输出(Input/Output,I/O)是在内存和外部设备(如磁盘驱动器、终端、网络适配器)之间拷贝数据的过程。输入操作是从I/O设备拷贝数据到内存,输出操作是从内存拷贝数据到I/O设备。 Linux将一切设备抽象为文件,常见的I/O操作包括打开文件、读文件、写文件等。Linux中的大多 阅读全文
posted @ 2017-05-16 20:02 west000 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 1. C语言中的static C语言中的static关键字,可以用来修饰全局变量、局部变量、函数。下面简单讨论一下static在C语言中的作用 1.1 修饰全局变量 所有全局变量存储在静态存储区中,默认情况下是外部的,在一个翻译单元(源文件)中定义的全局变量默认情况下可以被其它源文件引用,只需要在引 阅读全文
posted @ 2017-03-22 20:29 west000 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 很多人学习编程的时候,第一个接触到排序算法就是冒泡算法,它是最简单的交换类排序算法。此外,另一个著名的算法——快速排序算法,也属于交换类排序算法。 1 冒泡排序 (1) 基本思想 在非有序的序列中,两两比较相邻的元素,并交换不满足排序要求的元素对,直到整个序列都满足排序要求。由于每一趟排序,都会把非 阅读全文
posted @ 2017-02-10 20:51 west000 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 本文要介绍三种常见的插入排序——直接插入排序、折半插入排序、希尔排序。后两者是对直接插入排序的优化。 1 直接插入排序(Straight Insertion Sort,简称插入排序Insertion Sort) (1) 基本思想 把n个待排序的元素看成一个有序表和一个无序表。一开始有序表只包含1个元 阅读全文
posted @ 2017-02-10 20:46 west000 阅读(703) 评论(0) 推荐(0) 编辑
摘要: gdb是GNU debugger的缩写,是编程调试工具。 gdb的功能: 1.启动程序,可以按照用户自定义的要求随心所欲的运行程序。 2.可让被调试的程序在用户所指定的调试的断点处停住 (断点可以是条件表达式)。 3,当程序停住时,可以检查此时程序中所发生的事。 4.动态改变量程序的执行环境。 1. 阅读全文
posted @ 2017-02-10 20:38 west000 阅读(287) 评论(0) 推荐(0) 编辑
摘要: 给一个简单的makefile,下面对其进行分析 makefile的基本操作 (1)目标(TARGET)程序产生的文件,如可执行文件和目标文件;目标也可以是要执行的动作,如clean,也称为伪目标。目标可以有多个 (2)依赖(DEPENDENCIES)是用来产生目标的输入文件列表,一个目标通常依赖于多 阅读全文
posted @ 2017-02-10 20:35 west000 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 1. GCC简介 GCC的全称是GNU Compiler Collection,它是一个能够编译多种语言的编译器。最开始GCC是作为C语言的编译器(GNU C Compiler),经过了这么多年的发展,GCC 已经不仅仅能支持 C 语言;它现在还支持 Ada 语言、C++ 语言、Java 语言、Ob 阅读全文
posted @ 2017-02-10 20:32 west000 阅读(549) 评论(0) 推荐(0) 编辑
摘要: find用于搜索文件名称,其一般格式为:find pathname expressions 1. find常用表达式 find的表达式分为三类:选择表达式、条件表达式、操作表达式。 表达式 | 类型 | 用途 | 举例 | | | mount | 选择表达式 | 用于防止find命令的搜索范围超出当 阅读全文
posted @ 2017-02-10 20:22 west000 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 1. grep简介 grep是通用正则表达式分析程序(General Regular Expression Parser)的缩写。 grep命令可以在它的输入中搜索指定的字符串模式。grep输出的是包含输入中指定的字符串模式的行。 一般格式为:grep [option] pattern file g 阅读全文
posted @ 2017-02-10 20:19 west000 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 1. 用户类别 用户 | 含义 | root | 超级用户 owner | 所属用户,实际拥有文件的用户 group | 所属组,用户组 world/other | 其他用户 /etc/shadow的内容如下 每一个用户共有9项内容,以:分隔开 (1) 用户名 (2) 密码( 或!开头的,表示不能登 阅读全文
posted @ 2017-02-10 20:13 west000 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 1. 磁盘管理命令 df查看磁盘的使用状况,du可以查看目录的使用状况 命令 | 含义 | df | 整个磁盘的使用状况,包含各个分区信息(文件系统、大小、已用、使用率、挂载点) df h | 以直观的方式显示磁盘分区使用状况 df 路径或文件夹 | 查看某个文件或文件夹所属的分区信息 du [文件 阅读全文
posted @ 2017-02-10 20:08 west000 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 1. 问题描述 围绕着山顶有10个洞,狐狸想要吃兔子,兔子说:“可以,但必须找到我,我就藏身于这10个洞中,你从10号洞出发,先到1号洞找,第二次隔1个洞找,第三次隔2个洞找,以后如此类推,次数不限。”但狐狸从早到晚进进出出了1000次,仍没有找到兔子。问兔子究竟藏在哪个洞里? 2. 问题分析 (1 阅读全文
posted @ 2016-09-30 14:00 west000 阅读(4546) 评论(0) 推荐(0) 编辑