随笔分类 - 操作系统
摘要:前文:5种经典IO模型 在非阻塞IO模型中,通过多线程遍历的方式来解决阻塞,但在每一个线程里都通过while循环中做系统调用是非常浪费资源的,因此可以统一将文件描述传给内核,由内核统一便利,返回结果给我们就行。其中select就是这样的方式,随着对select的优化又出现其他几种IO模型 多路复用I
阅读全文
摘要:int8 -128~127 uint8 = byte 0~255 负数以正数的补码来表示 5 = 0000 0101 原码 0000 0101 反码(原码每一位取反)1111 1010 补码 (反码加一)1111 1011 1 = 0000 0001 反码 1111 1110 补码 1111 111
阅读全文
摘要:前文:5种常用IO模型/IO多路复用 React线程模型是一种事件驱动模型 Reactor线程模型=Reactor(IO多路复用)+线程池 Reactor主要用来负责监听和分配事件,线程池负责处理事件 根据Reactor的数量和线程池的数量,又可以将Reactor分为三种模型 单Reactor单线程
阅读全文
摘要:在Linux里,这叫做文件描述符fd(File Descriptor),而在Windows里,叫做句柄(Handle)(以下在没有歧义的时候统称为句柄)。用户通过某个函数打开文件以获得句柄,此后用户操纵文件皆通过该句柄进行 句柄可以防止用户随意读写操作系统内核的文件对象。无论是Linux还是Wind
阅读全文
摘要:在网络中的不用应用进程之间传递数据:Sockect 进程间通信操作需要一对儿socket。进程间通信通过在一个进程中的一个socket与另一个进程中得另一个socket进行数据传输来完成。当一个消息执行发出后,这个消息在发送端的socket中处于排队状态,直到下层的网络协议将这些消息发送出去。当消息
阅读全文
摘要:分时操作系统: 分时操作系统将系统处理机时间与内存空间按一定的时间间隔(划分时间片),采用轮转运行方式轮流地切换给各终端用户的程序使用(例如规定每个作业每次只能运行一个时间片)。由于时间间隔很短,每个用户就感觉像独占全机一样,这样就解决了主机共享问题。而对于人机交互,为实现用户键入命令后能对自己的作
阅读全文
摘要:I/O 过程分析 对于一次 Network I/O (以 read 举例),它会涉及到两个系统对象,一个是调用这个 I/O 的进程或线程,另一个就是系统内核 (kernel)。当一个 read 操作发生时,会经历两个阶段(记住这两个阶段很重要,因为不同 I/O 模型的区别就是在两个阶段上各有不同的处
阅读全文
摘要:进程与线程的区别: 进程是是计算机系统资源分配和调度的最小单位,进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程。 线程是CPU分配和调度的最小单位,一个进程中可以运行多个线程。线程总是属于某个进程,进程中的多个线程共享进程的内存。 进程的状态与转换:
阅读全文
摘要:前沿: 如果存在一个程序,所需内存空间超过了计算机可以提供的实际内存,那么由于该程序无法装入内存所以也就无法运行。单纯的增加物理内存只能解决一部分问题,但是仍然会出现无法装入单个或者无法同时装入多个程序的问题。但是可以从逻辑的角度扩充内存容量,即可解决上述两种问题。基于局部性原理,在程序装入时,可以
阅读全文