知识杂货铺

不卖切糕

View on GitHub
12 June 2019 07:07

《王道程序员求职宝典》笔记 - 操作系统第2章 内存管理

by 宋强

操作系统的四个特征

进程

进程的概念

进程是程序运行的实体,是一个动态概念,从静态组成的角度来说,包含程序、数据和进程控制块三部分。

程序的概念

程序是一组命令的集合。

fork与printf的组合

#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
int main(void) {
        int i;
        for (i=0; i < 2; i++) {
                fork();
                printf("-");
        }
        return 0;
}

这个题输出的是8个’-‘,主要原因在于printf输出这个符号的时候是将其先放入缓冲区,而后面第二次fork时缓冲区也被复制了,所以后面本来应该输出一次’-‘的都在这个基础上加上了之前继承的一个’-‘。

相反,如果加上了换行符,换行符会刷新缓冲区,那么就会立刻输出并且只输出6个:

#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>

int main(void){
        int i;
        for(i=0; i < 2; i++){
                fork();
                printf("-\ n");
        }
        return 0 ;
}

线程

线程的概念

线程是一个逻辑执行流的最小单元,是进程独立调度的最小单位,通常包括:

线程共享的内容:

$P_{325}$例4

进程与线程的区别(背下来)

临界资源一次仅允许一个进程访问的资源。

临界区代码访问临界资源的代码。

tags: linux