文章目录
操作系统
第一部分 虚拟化
第1章 操作系统介绍
1.虚拟化CPU
1.虚拟化:操作系统将物理资源(如处理器,内存,磁盘等)转化为更加强大的更加通用使用的虚拟形式,有时我们也将操作系统称为虚拟机或者是资源管理器。
2.什么是虚拟化CPU?
将单个CPU(或者是其中的一部分)转换为看似无限数量的CPU,从而让许多程序看似同时运行,这就是所谓的虚拟化CPU。
2.虚拟化内存
1.程序运行时,访问的指令来自于哪里?
程序将所有的数据结构保存在内存中,并通过各种指令来访问它们,程序的每个指令都在内存中,所以每次读取指令都会访问内存。
2.每个运行的程序都在相同的地址处分配了内存,但是打印出来的实际值却不一样呢?
这正是操作系统中虚拟化内存时发生的情况,每个进程都访问属于自己私有的虚拟地址空间,操作系统以某一种特有的方式映射到机器的物理地址上,实际上我们访问的实际物理地址是不一致的,它完全拥有属于自己的地址内存,物理内存是由操作系统管理的共享资源。在这段理解中,我们还可以理解进程是资源分配的最小单位,进程内存访问虚拟内存空间,进程相当于是一个中间层,通过映射关系对应到真实的物理内存空间。
3.并发
include <stdio.h>
#include <stdlib.h>
#include "common.h"
volatile int counter = 0;
int loops;
void *worker(void *arg)
{
int i;
for (i = 0; i < loops; i++)counter++;
return NULL;
}
int main(int argc, char *argv[])
{
if (argc != 2)
{
fprintf(stderr, "usage: threads <value>\n");
exit(1);
}
loops = atoi(argv[1]);
pthread_t p1, p2;
printf("Initial value : %d\n", counter);
Pthread_create(&p1, NULL, worker, NULL);
Pthread_create(&p2, NULL, worker, NULL);
Pthread_join(p1, NULL)