
Linux
托马斯.杨
这个作者很懒,什么都没留下…
展开
-
五种IO模型及三种IO多路转接(复用)模型
五种IO模型 1、阻塞IO:在内核将数据准备好之前,系统调用会一直等待,所有的套接字,默认方式都是阻塞方式。 2、非阻塞IO:如果系统调用还未将数据准备好,系统调用仍然会直接返回,并且返回EWOULDBLOCK错误码。 非阻塞IO往往需要程序员循环的方式反复尝试读写文件描述符, 这个过程称为轮询. 这对CPU来说是较大的浪费, 一 般只有特定场景使用。 3、信号驱动IO: 内核将数据准备好...原创 2020-04-23 17:53:28 · 2149 阅读 · 0 评论 -
传输层典型协议---TCP/UDP
一、UDP 1、UDP协议格式原创 2020-04-10 23:11:23 · 488 阅读 · 1 评论 -
我的项目--Automatic CloudBcakup
asdfg原创 2020-04-10 15:42:39 · 318 阅读 · 0 评论 -
HTTP协议
虽然说应用层协议是我们程序员自己定的,但实际上,已经有大佬们定义了一些现成的应用层协议,最典型的就是HTTP协议(超为本传输协议,起初是为了传输HTML(超文本文件))。 1、URL(uniform resource located)/统一资源定位符 URL就是我们通常说的"网址",其结构如下: url编码:提交给服务器的数据若遇到包含特殊字符,就需要对其进行url编码,按字符的每个字节转...原创 2020-03-21 23:35:58 · 368 阅读 · 0 评论 -
线程池
线程池: 一种线程使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务。这避免了在处理短时间任务时创建与销毁线程的代价。线程池不仅能够保证内核的充分利用,还能防止过分调度。可用线程数量应该取决于可用的并发处理器、处理器内核、内存、网络 sockets等的数量。 线程池的应用场景: 1、需要大量的线程来完成任务,且完成任务...原创 2020-03-10 12:42:05 · 101 阅读 · 0 评论 -
多线程(2)---线程安全
搜索树原创 2020-01-18 14:55:06 · 1452 阅读 · 0 评论 -
多线程(1)---线程概念&线程控制
一、线程概念: 1、概念: 线程(thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。 在UnixSystem V及SunOS中也被称为轻量进程(lightweight processes),但轻量进程更多指内核线程(kernel thread),而把用户...原创 2020-01-18 12:08:09 · 273 阅读 · 0 评论 -
使用信号实现sleep函数
更新中-----------原创 2020-01-18 09:46:17 · 307 阅读 · 0 评论 -
进程间通信(IPC)
进程间通信(Interprocess communication) 一、概述: 进程的用户空间是互相独立的,一般而言是不能互相访问的,唯一的例外是共享内存区。进程间通信是一组编程接口,让程序员能够协调不同的进程,使之能在一个操作系统里同时运行,并相互传递、交换信息。这使得一个程序能够在同一时间里处理许多用户的要求。因为即使只有一个用户发出要求,也可能导致一个操作系统中多个进程的运行,进程之间必须...原创 2020-01-16 18:59:12 · 409 阅读 · 0 评论 -
基础IO
方法原创 2020-01-14 17:31:13 · 188 阅读 · 0 评论 -
进程控制
一、进程创建 创建一个进程就是创建一个PCB,并拷贝(写时拷贝)父进程中的信息,父子进程代码共享,数据独有。 pid_t fork()---创建一空白pcb,复制父进程信息,各自有一块自己的虚拟地址空间 返回值:>0:父进程区域,返回值为子进程的pid; =0,子进程区域; <0(-1),创建失败。 pid_t vfork()---创建一空白pcb,复制父进程信息,共...原创 2020-01-13 16:40:32 · 169 阅读 · 0 评论 -
minishell
shell就是一个命令解释器 实现思路: 1、等待用户的标准输入 [ls -l -a] 2、对用户数据进行解析,得到程序名称以及参数信息[-l]和[-a]原创 2020-01-13 16:19:43 · 310 阅读 · 0 评论 -
进程概念
1、什么是进程? 进程就是一个PCB(struct task_struct ),是一个运行中的程序的描述,通过描述信息中的内存指针能够找到内存中运行的程序代码以及数据,并且通过上下文数据可以保存程序调度切换时正在处理的数据,以及通过程序计数器保存进程切换时程序即将执行的下一步指令等等,通过这些描述信息实现控制一个程序的运行,因此对于操作系统来说进程就是一个PCB。 进程在操作系统中的调度切换运...原创 2020-01-08 15:59:51 · 1382 阅读 · 0 评论 -
编译过程简单分析(C语言)
C程序由源程序变为可执行文件的四个过程是: 一.预编译 预编译又称为预处理,是做些代码文本的替换工作,是整个编译过程的最先做的工作。 (1)处理所有的注释,以空格代替 (2)讲所有的#define删除,并且展开所有的宏定义 (3)处理条件编译指令#if,#ifdef、#elif,#else、#endif (4)处理#include,展开文件包含 (5)保留编译器需要使用#pragma指令 二...原创 2019-07-21 09:41:16 · 219 阅读 · 0 评论 -
进程通信(2)---信号
1、信号产生的方式 2、信号的原创 2019-12-10 14:16:08 · 300 阅读 · 0 评论 -
Linux根目录下的目录介绍
1、/- 根 每一个文件和目录从根目录开始。 只有root用户具有该目录下的写权限。请注意,/root是root用户的主目录,这与/.不一样 2、/bin中 - 用户二进制文件 包含二进制可执行文件。 在单用户模式下,你需要使用的常见Linux命令都位于此目录下。系统的所有用户使用的命令都设在这里。 例如:ps、ls、ping、grep、cp 3、/sbin目录 - 系统二进制文件 就像/b...转载 2019-11-06 12:08:39 · 397 阅读 · 0 评论 -
Linux简单操作符《常用工具简单介绍》
1.权限 r -----可读文件 w-----可写文件 x------可执行文件 2.三种不同角色 (1)文件拥有者 (2)文件拥有者的同组用户 (3)其他用户 3.chmod -r/w/x+’ 文件名’ :使三种角色对此文件失去可读/可写/可执行权限 在此对文件a使用chmod -r ,得到以下结果: (1)chmod u-r + ‘文件名’ :使文件使用者对此文件失去可读权限 ...原创 2019-05-04 17:45:16 · 811 阅读 · 0 评论 -
Linux简单操作符介绍《基础指令》
1. ls -----查看目录 ** 2.clear ------清屏** ** 3.pwd -----查看当前目录完整路经** 4.ll :查看此文件属性 结果中的每一行字母为’-'表示这个文件是普## 标题通文件 第一个字母为’d’表示这个文件是目录文件 5.cd ------切换当前路径位*置 ** 6.绝对路径和相对路径** 绝对路径:以 / 开头的路径叫绝对路径 相对路径:以...原创 2019-04-23 00:19:45 · 691 阅读 · 0 评论