不积小流,无以成江海。
分类: 信息化
2023-09-04 08:53:02
declaration:以下为个人学习此书的摘录,仅做学习用途。
0904周一
操作系统内核是应用程序和硬件之间的媒介。它提供三个基本的抽象概念:
文件是对i/o设备的抽象概念;
虚拟存储器是对主存和磁盘的抽象概念;
进程是对处理器、主存和i/o设备的抽象概念。
网络提供了计算机系统之间通信的手段。从某个系统的角度来看,网络就是一种i/o设备。
0906周三
第四章 处理器体系结构
p218
指令被编码为一个或多个字节序列组成的二进制格式,一个处理器支持的指令和指令的字节级编码称为它的isa(instruction-set architecture, 指令集体系结构)
isa在编译器编写者和处理器设计人员之间提供了一个概念抽象层:
编译器编写者只需要知道允许哪些指令,以及它们是如何编码的;
而处理器设计者必须建造出执行执行指令的处理器。
1008周日
risc与cisc介绍,hcl了解
p223~227
输入输出是在主存和外部设备(例如磁盘驱动器、终端和网络)之间拷贝数据的过程。
输入操作是从i/o设备拷贝数据到主存,而输出操作是中主存拷贝数据到i/o设备。
在unix系统中,是通过使用内核提供的系统级unix i/o函数来实现这些较高级别的i/o函数的。
了解unix i/o有助于理解其他的系统概念。i/o是系统操作不合或缺的一部分。
有时除了使用unix i/o以外别无选择。在某些重要的情况下,使用高级别i/o函数不太可能,或者不太合适。例如,标准i/o库没有提供读取文件元数据的方式,这些元数据包括文件大小或文件创建时间。
11.1 unix i/o ---------todo
1121 周二
chapter13 并发编程
并发(concurrent):逻辑控制流在时间上重叠
现代操作系统提供了三种基本的构造并发程序的方法:
进程:用这种方法,每个逻辑控制流都是一个进程,有内核来调度和维护。因为进程有独立的虚拟地址空间,想要和其他流通信,控制流必须使用显式的进程间通信(interprocess communication, ipc)机制。
i/o多路复用 应用程序在一个进程的上下文中显式地调度它们的逻辑流。
(没理解)
可以参考这个网上的帖子:
1. 什么是io多路复用
一句话解释:单线程或单进程同时监测若干个文件描述符是否可以执行io操作的能力。
io多路复用
io多路复用在linux下包括了三种,、、,抽象来看,他们功能是类似的,但具体细节各有不同:首先都会对一组文件描述符进行相关事件的注册,然后阻塞等待某些事件的发生或等待超时。更多细节详见下面的 "具体怎么用"。io多路复用都可以关注多个文件描述符,但对于这三种机制而言,不同数量级文件描述符对性能的影响是不同的,下面会详细介绍。
线程。
13.3 基于线程的并发编程
是基于进程和i/o多路复用的混合。
13.3.1 线程执行模型
每个进程开始生命周期都是单一线程,这个线程称为主线程(main thread)。在某一时刻,主线程创建一个对等线程(peer thread),从这个时间点开始,两个线程并发运行。{banned}最佳后,因为主线程执行一个慢速系统调用,例如read或者sleep,或者因为它被系统的间隔计时器中断,控制就会通过上下文切换传递到对等线程。在控制传递回主线程前,对等线程会执行一段时间,一次类推。
与进程的区别:
线程的上下文切换要比进程的上下文切换快得多。因为线程的上下文比进程小得多。
另一个不同就是线程不像进程那样,不是按照严格的父子层次组织的。
和一个线程相关的线程组成一个对等(线程)池(a pool of peers),独立于其他线程创建的线程。一个线程可以杀死它的任何对等线程,或者等待它的任意对等线程终止。
退一步来说,每个对等线程都能读写相同的共享数据。