操作系统
文章平均质量分 90
操作系统
Jqivin
这个作者很懒,什么都没留下…
展开
-
操作系统第四章——非连续内存分配
目录原创 2021-10-12 23:58:48 · 53 阅读 · 0 评论 -
操作系统第三章——物理内存管理
目录1.计算机体系结构2.内存分层体系内存分层体系内存管理目标内存管理方法3.地址空间4.连续内存分配内存碎片问题分区的动态分配碎片整理方法第三章的主要内容是 : 操作系统的物理内存管理1.计算机体系结构CPU内存I/O2.内存分层体系内存分层体系运行内存(主存) / 磁盘(虚拟内存). 主存是在运行程序时所需要保存的数据空间,而磁盘是用于持久化数据保存的数据空间.CPU可以访问的内存包括两大类 : 寄存器 / cache(L1缓存 / L2缓存)层次微处理器(CPU访问)|原创 2021-10-12 22:56:57 · 21 阅读 · 0 评论 -
操作系统第一、二 章
目录操作系统的启动操作系统与设备和程序的交互操作系统的启动DISK:存放osBIOS:基本的IO处理系统BootLoader:加载os最初,os是存放在Disk中的;BIOS(basic io system)是用来检测各种外设(如屏幕,键盘等)的装置。Bootloader是用来加载os中的,使os从硬盘加载到内存,使CPU可以执行操作系统。BIOS功能:自检(通电之后检查各种设备是否可以正常运行,包括显卡等设备)、将BootLoader加载到内存。BootLoader一般放在硬盘的第一个扇原创 2021-10-12 10:08:55 · 26 阅读 · 0 评论 -
Linux高性能服务器程序框架(2)
点击查看:高性能服务器程序框架(1) 四、两种高效的事件处理模式 服务器程序通常需要处理三类事件:I/O事件、信号、定时事件。 同步I/O模型通常用于实现Reactor模式。 异步I/O模型则用于实现Proactor模式。 1. Reactor模式: Reactor是这样一种模式, 它要求主线程(I/O 处理单元) 只负责监听文件描述上是否有事件发生,有的话就立即将该事件通知工作线程(逻辑单元)。 除此之外,主线程不做任何...转载 2021-07-03 20:19:47 · 137 阅读 · 0 评论 -
Linux高性能服务器程序框架(1)
首先,按照服务器程序的一般原理,将服务器解构为如下三个主要模块: I/O处理单元——介绍I/O处理单元的四种I/O模型和两种高效事件处理模式。逻辑单元——介绍两种高效并发模式,以及高效的逻辑处理方式(有限状态机)。存储单元——不做讨论。 一、 服务器模型 1. C/S模型: TCP/IP协议在设计和实现上并没有客户端和服务器的概念,在通信过程中所有机器都是对等的。但由于资源(视频、新闻、软件等)都被数据提供者所垄断,所以几乎所有的...转载 2021-07-03 19:01:51 · 275 阅读 · 0 评论 -
同步IO、异步IO、阻塞IO、非阻塞IO之间的联系与区别
文章目录POSIXIO模型阻塞IO模型非阻塞IO模型IO复用模型信号驱动IO模型总结POSIXPOSIX(可移植操作系统接口)把同步IO操作定义为导致进程阻塞直到IO完成的操作,反之则是异步IO按POSIX的描述似乎把同步和阻塞划等号,异步和非阻塞划等号,但是为什么有的人说同步IO不等于阻塞IO呢?先来说说几种常见的IO模型吧。IO模型这里统一使用Linux下的系统调用recv作为例子,它用于从套接字上接收一个消息,因为是一个系统调用,所以调用时会从用户进程空间切换到内核空间运行一段时间再切.原创 2021-07-03 18:56:54 · 1013 阅读 · 0 评论 -
linux下CMake的简单介绍
文章目录一、CMake简介二、CMake的安装三、CMake的语法特性的介绍基本语法格式CMake常用的指令和变量1. 常用的指令2.常用的变量四、CMake编译工程1.目录结构2. 编译流程3. 两种构建方式一、CMake简介 CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件。特点:使用简单方便,可以跨平台使用,构建项目编译环境。比直接写Makefile文件简单,可以通过简单的CMake生成复杂.原创 2021-06-11 21:11:43 · 1702 阅读 · 1 评论 -
死锁及其应对方案
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录一、死锁是什么?``1.死锁````2.例子``:``3.死锁的四个必要条件``二、死锁的应对1.不予理睬2.死锁的检测与修复3.死锁的动态避免2.读入数据总结一、死锁是什么?1.死锁有一组线程,每个线程都在等待某一个资源,但所需要的资源又是别的线程所持有的资源。则我们称这组线程发生了死锁。在死锁的状态下,没有线程可以释放资源,获取资源。线程都保持着自己的资源不释放,但是又得不到另外想要的资源,从而陷入了死锁的僵局。2.例原创 2021-05-19 15:02:23 · 632 阅读 · 0 评论 -
Linux有关文件操作的系统调用的总结
一、open函数函数原型int open(const char* pathname, int flags);//用于打开一个已存在的文件 int open(const char* pathname, int flags,mode_t mode);//用于新建一个文件, 并设置访问权限返回值 : 失败返回-1,成功返回一个文件描述符。参数介绍:(想要打开一个文件,我们要知道这个文件在哪(路径),还要知道对这个文件执行什么操作(flags),还要设置它的权限(mode))(1)path原创 2021-04-21 23:08:07 · 278 阅读 · 0 评论 -
Libevent库的简介
一、libevent是什么Libevent 是一个用C语言编写的、轻量级的开源高性能事件通知库,主要有以下几个亮点:事件驱动( event-driven),高性能;轻量级,专注于网络,不如 ACE 那么臃肿庞大;源代码相当精炼、易读;跨平台,支持 Windows、 Linux、 *BSD 和 Mac Os;支持多种 I/O 多路复用技术, epoll、 poll、 dev/poll、 select 和 kqueue 等;支持 I/O,定时器和信号等事件;注册事件优先级。Libevent 已经被广泛的应用,原创 2021-04-08 22:13:36 · 677 阅读 · 0 评论