rust中比起C,将更多语法作为表达式处理,如if

unit type

一种只包含一个实例的类型

rust中用来表示返回值为void

empty type

无实例的类型

rust中用来表示不返回

变长类型

这里的变长的理解应该是编译期不能确定,运行期确定后不能改变

[T]str 不定长u8串,UTF-8编码

一般以引用形式出现

因为他们的长度编译期不可知,&[T]&str由指向数组地址和长度两部分组成

同时检查多个文件描述符,看它们是否准备好了执行 I/O 操作(准确地说,是看 I/O系统调用是否可以非阻塞地执行)

也即文件描述符就绪

笨办法(?):非阻塞IO轮询,多进(线)程

IO多路复用,信号驱动

CS110 TODO

Lec9 并发程序输出

线程同步

IPC

通信

同步

信号

fast system call

时间都花在代码执行上,不需要等待外部资源

本地文件读取被认为是fast的

slow system call

花费indefinite时间在等待上

waitpid,accept,read(socket)

使slow变成fast

non-blocking模式

CS110总结

抽象

实现和行为分离

clean易用接口,不需要你了解底层

模块化与分层

文件系统分层

编译器pipeline

网络协议栈

命名和名称解析

给系统资源human-readable名字

文件inode号和文件名

ip和域名

url,pid,fd

缓存
虚拟化

make many resources look like one

raid

afs

load balancer

make one resource look like many

虚拟内存映射

线程(这里说的是进程的栈被瓜分以便多线程使用)

虚拟机

并发

多进程在1处理器,多线程在1进程

信号和中断

C-S请求和应答

责任的清晰划分

system call

HTTP,IMAP,DNS

NFS,AFS

理解信号量

一种事件