操作系统-导论


操作系统

第一部分 虚拟化

第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)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值