操作系统
提高对系统的认知。
famur
千里黄云白日曛,北风吹雁雪纷纷。 莫愁前路无知己,天下谁人不识君?
展开
-
“三千里加急” Linux IPC --详解
大多数原创 2020-04-03 17:58:33 · 1344 阅读 · 10 评论 -
“谁将天下安危事,一把诗书子细论” Linux 命令详解
通过查阅Linux命令词典向大家,详细说明一些重要的命令 Linux命令一、alias(设置命令的别名)二、bg(将程序放到后台执行)三、cat(连接多个文件,并将它们的内容输出到标准输出设备)四、cd(切换目录)五、clear(清除画面)六、cp(复制文件或目录) 一、alias(设置命令的别名) 功能说明:设置命令的别名 语法:alias [ - p ] [ 别名 ] [ = 命令] 包名...原创 2020-04-01 15:09:13 · 3507 阅读 · 17 评论 -
I/O多路复用三胞胎
select 时间复杂度O(n) 特点 可监控的文件描述符个数取决与sizeof(fd_set)的值. 我这边服务器上sizeof(fd_set)=512,每bit表示一个文件描述符,则我服务器上支持的最大文件描述符是512*8=4096. 将fd加入select监控集的同时,还要再使用一个数据结构array保存放到select监控集中的fd, 一、是用于再select 返回后,array作为...原创 2020-03-26 16:17:49 · 193 阅读 · 0 评论 -
详谈I/O多路复用epoll
一、基本知识 按照man手册的说法: 是为处理大批量句柄而作了改进的poll. epoll使用一个文件描述符管理多个描述符,将用户关系的文件描述符的事件存放到内核的一个事件表中,这样在用户空间和内核空间的copy只需一次。 它是在2.5.44内核中被引进的(epoll(4) is a new API introduced in Linux kernel 2.5.44) 它几乎具备了之前所说的一切优...原创 2020-03-26 12:09:26 · 197 阅读 · 1 评论 -
春风东来忽相过,金樽渌酒生微波。详谈 I/O多路复用 select
是从知乎上看的觉得解释很到位就贴过来了 下面举一个例子,模拟一个tcp服务器处理30个客户socket。假设你是一个老师,让30个学生解答一道题目,然后检查学生做的是否正确,你有下面几个选择: 1、第一种选择:按顺序逐个检查,先检查A,然后是B,之后是C、D。。。这中间如果有一个学生卡主,全班都会被耽误。这种模式就好比,你用循环挨个处理socket,根本不具有并发能力。 2、第二种选择:你创建30...原创 2020-03-25 15:38:10 · 423 阅读 · 12 评论 -
【网络】五大 I/O 模型 兄弟
任何IO过程中, 都包含两个步骤. 第一是等待(准备数据), 第二是拷贝(将数据从内核缓冲区拷贝到进程地址空间). 而且在实际的应用场景中, 等待消耗的时间往往都远远高于拷贝的时间. 让IO更高效, 最核心的办法就是让等待的时间尽量少. 五种IO模型包括:阻塞IO、非阻塞IO、信号驱动IO、IO多路转接、异步IO。其中,前四个被称为同步IO。 博客链接什么是同步什么是异步。 https://blo...原创 2020-03-22 17:57:17 · 1141 阅读 · 7 评论 -
模拟实现select epoll
select #pragma once #include<iostream> #include<stdlib.h> #include<unistd.h> #include<sys/types.h> #include<sys/socket.h> #include<arpa/inet.h> #include<netinet...原创 2020-03-22 17:56:25 · 299 阅读 · 1 评论 -
【Linux】 安装gcc、g++
一、ubuntu下gcc/g++/gfortran的安装 1.安装 (1).gcc ubuntu下自带gcc编译器。可以通过“gcc -v”命令来查看是否安装。 (2).g++ 安装g++编译器,可以通过命令“sudo apt-get install build-essential”实现。 执行完后,就完成了gcc,g++,make的安装。build-essential是一整套工具,gcc,lib...原创 2020-03-21 12:20:23 · 560 阅读 · 0 评论 -
【Linux】拥有高大上的vim
Vim配置 vim是从VI发展而来的一个文本编辑器,功能更强大。而vim.tiny是vim的精简版,所以,安装vim势在必行。刚安装的VIM,可能界面并不是十分友好,这就需要我们去更改vim的配置文件,按照我们的需求去修改它。 **···**手动安装 打开Linux终端 键入 su 输入你的登录密码 进入root用户 然后 键入命令 cd /etc/ 如下图: 接着输入命令 vim vimrc...原创 2020-03-21 09:19:34 · 303 阅读 · 0 评论 -
风声一何盛,松枝一何劲!进程和线程的区别
进程与线程的区别,早已经成为了经典问题。自线程概念诞生起,关于这个问题的讨论就没有停止过。通过学习和阅读博客对进程和线程区别进行总结。 在进行进行进程和线程的区别说明,先介绍什么是进程?什么是线程? 一、认识进程 人们是如何和操作系统进行交流,编写程序,执行任务? 通过进程人们实现了和操作系统的交互。每一个任务(进程)被创建时,系统会为他分配存储空间等必要资源,然后在内核管理区为该进程创建管理节点...原创 2020-03-19 09:56:59 · 234 阅读 · 0 评论