
Linux
wn12-02
这个作者很懒,什么都没留下…
展开
-
进程间通信——管道
一,目的 ·数据传输:一个进程需要将它的数据发送给另一个进程·资源共享:多个进程之间共享同样的资源·通知事件:一个进程需要向另一个或一组进程发送消息,通知它们发生了某种事件。·进程控制:有些进程希望完全控制另一个进程的执行,此时控制进程希望能够阻止另一个进程的所有陷入和异常,并且能够及时知道它的状态改变。二,分类 管道:命名管道,命名管道System V进程间通信:消息队列,共...原创 2018-06-13 16:57:52 · 223 阅读 · 0 评论 -
项目:文件压缩(huffman树)
原理:将每个字符转换成对应的编码,而编码都是由0和1组成,那么就可以用比特位来表示编码对应的字符,从而实现文件压缩;同样,再根据压缩的步骤反推,即可实现解压缩思路: 1,统计文件中各个字符出现的次数定义一个哈希表,用直接定址法,统计各个字符出现的次数; 要注意的是:字符的大小是-127~128,而哈希表的范围是0~255,所以使用直接定址法的时候需强转成无符号2,构建哈夫...原创 2018-08-27 14:46:24 · 318 阅读 · 0 评论 -
网络基本知识和TCP/IP模型
一、网络协议 (1)”协议”是一种约定; (2)协议是网络通信中的一个必要条件。 二、协议分层 特点:高内聚、低耦合,让每一层可以更专注地做自己的事情; 每层之间可以直接通信,一旦跨层,就不能进行通信; 分层最大的好处在于“封装”。 三、OSI七层模型 (1)O...原创 2018-08-01 16:56:12 · 210 阅读 · 0 评论 -
进程间关系和守护进程
一、进程组 (1)进程组是一个或多个进程的集合; (2)通常,进程组与同一作业相关联,可以接收来自同一终端的各种信号; (3)每个进程组都有一个唯一的进程组ID; (4)每个进程组都有一个组长进程,组长进程的标识是,其进程ID等于其进程组ID; (5)只要在某个进程组中有一个进程存在,则该...原创 2018-07-31 18:35:56 · 208 阅读 · 0 评论 -
线程同步与互斥
一、基本概念 (1)公共的资源称为临界资源; (2)访问临界资源的代码称为临界区; (3)互斥,为了保护临界区/临界资源的安全性; (4)同步,访问临界资源时需要按照一定的顺序; (5)原子性,对目标数据要么改了,要么没改,不存在改一部分的情况。 二、mutex(互斥量) ...原创 2018-07-30 18:29:59 · 274 阅读 · 0 评论 -
静态库和动态库
静态库(.a): 程序在编译链接的时候把库的代码链接到可执行文件中。程序运行的时候将不再需要静态库; 动态库(.so): 程序在运行的时候才去链接动态库的代码,多个程序共享使用库的代码;·一个与动态库链接的可执行文件仅仅包含它用到的函数入口地址的一个表,而不是外部函数所在目标文件的整个机器码; ·在可执行文件开始运行前,外部函数的机器码由操作系...原创 2018-07-22 15:44:39 · 162 阅读 · 0 评论 -
线程控制
一、POSIX线程库 ·线程函数库是用户级的,此库为pthread; ·链接线程函数库时要使用编译器命令的“ -lpthread”选项。 二、线程创建功能:创建一个新的线程函数原型: int pthread_create(pthread_t *thread,const pthread_attr_t *attr, void *(*s...原创 2018-07-30 12:52:10 · 177 阅读 · 0 评论 -
线程的基本概念及线程与进程的关系
一、深刻理解线程的基本概念 在一个程序里的一个执行路线 就叫做线程; 线程是在进程内运行的; 一切进程至少都有一个执行线程; (1)Linux下所谓的线程是用PCB模拟实现的; (2)Linux下的线程称为轻量级进程,以前所说的进程可以理解为只有一个执行流的进程 ; ...原创 2018-07-30 10:41:51 · 433 阅读 · 0 评论 -
对文件I/O的基本认识
一、文件I/O函数 常见的文件I/O函数有 open()、close()、read()、write()、lseek();open()函数函数功能:打开一个文件包含的头文件: #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h&g...原创 2018-07-21 18:16:40 · 293 阅读 · 0 评论 -
Linux下如何同时注释多行/同时取消多行注释
同时注释多行1、首先,将光标放在要注释的行首,然后按ESC进入命令行模式;2、按Ctrl + V进入 VISUAL BLOCK ;3、按 PgUp/PgDn选择要注释的行;4、按大写的i进入插入模式;5、输入//,按ESC保存即可同时删除多行注释这里写代码片...原创 2018-07-21 14:09:53 · 23654 阅读 · 0 评论 -
进程控制
一、进程的优先级 取值范围:-20 ~ 19. 值越小,优先级越高 二、调整优先级的方法 (1) 启动进程前调整: nice -n (n指优先级) (2) 程序运行过程中调整: renice 优先级 -p pid(进程号) (3) top—> r —> 输入pid —> 输入nice...原创 2018-07-03 22:51:52 · 145 阅读 · 0 评论 -
初识进程控制
一、进程的概念1、程序:为了实现特定任务的一系列指令的有序集合。 程序也可以这样表示: 代码 + 数据 2、进程: 从用户角度看:进程是程序的一次动态执行过程; 从操作系统角度看:(1)进程是系统分配cpu、内存、时间片等系统资源的基本单位;(2)是系统分配资源的最小单位;(3)每个进程都有自己独立的地址空间和运行状态。 进程也可以这样表示: 代码 + 数据 + PCB + 堆栈...原创 2018-07-03 21:56:05 · 226 阅读 · 0 评论 -
信号量
一,信号的基本概念 如图1所示,用户输入命令,在外壳下启动一个前台进程; 通过组合键CTRL + C,CTRL + 1,CTRL + Z可以向前台进程发送信号; 进程所收到的信号都是由操作系统写的 .2,用户按下ctrl + c,键盘输入产生一个硬件中断; 3,如果CPU当前正在执行这个进程...原创 2018-07-08 23:21:56 · 215 阅读 · 0 评论 -
进程间通信——消息队列和共享内存
消息队列 ·消息队列提供了从一个进程向另一个进程发送一块数据的方法; ·每个数据块都被认为是有一个类型,接收者进程接收的数据块可以有不同的类型值; ·消息队列也具有管道的缺点,即每个消息的最大长度是有上限的,每个消息队列的总的字节数是有上限的,系统上消息队列的总数也有一个上限。消息队列在内核中的表示 消息队列函数 1、创建和访问消息队列函数原型:int msgget(ke...原创 2018-06-13 19:54:13 · 1279 阅读 · 0 评论 -
基于HTTP协议的web服务器项目
项目简介:基于 HTTP 协议实现一个多线程服务器,客户端通过浏览器发送请求,服务器接收并分析客户端的请求方法和资源,从而执行相应的逻辑处理,最终将客户请求的资源以 HTML 页面的形式呈现,并能进行差错处理。项目思路:首先实现两个主机不同进程间的通信,当服务器收到请求后,要进行分析请求方法,当方法确定后应该拿到请求的资源,接下来要根据资源是否存在执行相应的逻辑处理。GET 方法:如果没有参...原创 2018-10-06 14:46:55 · 1756 阅读 · 0 评论