
操作系统
吃饭睡觉胖胖胖
没有感情的码字机器
展开
-
I/O 多路复用技术
概述在 I/O 编程过程中,当需要同时处理多个客户端请求时,可以利用多线程或 I/O 多路复用技术进行处理。本篇博客我就来简单介绍 I/O 多路复用相关知识。什么是 I/O 多路复用技术I/O 多路复用技术是指多个网络 I/O 复用一个或少量的线程来处理这些请求。其中它通过把多个 I/O 的阻塞复用到同一个 select 阻塞上,从而使系统在单线程的情况下可以同时处理多个客户端请求。下面我通过抽象示例简单描述 I/O 多路复用技术:假设你是一名老师,让30个学生完成一道题目,并检查他们的结果是原创 2020-09-16 11:19:22 · 248 阅读 · 0 评论 -
Linux 网络 I/O 模型
概述I/O 操作是所有程序开发人员必须了解以及掌握的技术,因为它关乎系统之间的交互和数据传输。本篇博客我就来简单介绍几种常见的 I/O 模型。Linux 网络 I/O 模型根据网络编程对 I/O 模型的分类,常见的 Linux 有以下五种模型:阻塞 I/O 模型非阻塞 I/O 模型I/O 复用模型信号驱动 I/O 模型异步 I/O阻塞 I/O 模型阻塞 I/O 是最常见的 I/O 模型,默认情况下,所有文件操作都是阻塞的。举个例子:在进程空间中调用 ecvform 函数,其系统原创 2020-09-08 14:39:36 · 164 阅读 · 0 评论 -
抽象理解进程和线程
概述在前几篇博客中,我系统的整理了上下文切换和用户态以及内核态相关的知识,在整理过程中多次出现进程以及线程的概念。在学习其它博客时,我发现大部分内容前后矛盾,无法做到自圆其说,作为读者我也看得云里雾里,完全搞不清楚线程和进程的真面目。因此通过本片博客,我打算抽象的描述一下进程和线程的关系及作用。进程和线程关于为什么要抽象的描述进程和线程是因为:进程和线程本身就是两个抽象的概念。作为 java 开发者的我深受 面向对象 思想的影响(毒害),总是下意识的把任何概念都理解为一种对象。这对于理解一些抽象概原创 2020-06-30 16:40:15 · 366 阅读 · 0 评论 -
CPU上下文切换详解
概述上篇博客我简单介绍了用户态以及内核态相关知识,然而在实际并发专题中,除了CPU状态的切换,CPU的上下文切换也非常重要。本篇博客我就来简单介绍下CPU上下文切换相关的知识。CPU 上下文我们知道 linux 操作系统是一个多任务处理系统,它支持远超过CPU数量的任务 “并发” 执行。这里的并发不是说同一时刻一起执行,而是指多个任务快速切换执行,因为切换的速度极快,给人一种多个任务同时执行的错觉。而每个任务执行前,CPU都需要知道这个任务从哪里开始执行,从哪里开始加载,也就是需要系统提前设置好原创 2020-06-30 14:43:23 · 1258 阅读 · 0 评论 -
用户态和内核态
概述在前面关于锁的博客中,我多次提到线程的状态切换,即线程状态由用户态切换到内核态。本篇博客我就这两个概念简单整理一下。分级保护域分级保护域,经常被叫做保护环,又称环形保护、CPU环,简称 rings。这是一种用来在发生故障时保护数据和功能以及避免恶意操作的设计方式。简单来说,根据这种设计方式,计算机资源被划分为不同访问权限。根据权限从高到低的顺序,rings 依次划分为 ring 0 到 ring n,不同的操作系统会划分不同的层级。大多数情况下我们只使用其中两种:最高权限的 ring0 和 用原创 2020-06-29 15:51:36 · 301 阅读 · 0 评论 -
Xshell上传windows文件到Centos操作系统
1、通过 Xshell 连接 Centos 操作系统,并切换到你想要的上传的路径2、输入命令 “rz” 判断系统是否安装 “lrzsz”,如果没有安装终端会提示 “rz: command not found”3、如果没有安装,输入一下命令安装 lrzsz :“yum -y install lrzsz”4、安装完成后,可以通过 rpm 命令判断是否安装成功:“”5、执行 “rz -y...原创 2020-03-08 16:19:35 · 448 阅读 · 0 评论