像一个最简单的 hello 程序在操做系统上运行时,操做系统会提供一种假象,就好像只有这样一个程序在运行,独占 CPU、主存和I/O设备。处理器看上去就好像不断地执行程序中的指令,即该程序的代码和数据在内存中是惟一的,这些假象就是进程的概念实现的,进程是计算机科学中最重要和最成功的概念之一。并发
- 进程是对一个正在运行的程序的抽象。
- 每一个进程单独的占用硬件设备,但操做系统上好像都不止一个程序在运行,其实就是进程的指令在 CPU 上交错的执行,实现并发,这就是处理器在进程间的切换来实现的,称为上下文切换。
- 在任何一个时刻,单核处理器只能执行一个进程的代码,当操做系统决定要把控制权从当前进程转移到某个新进程时,就会进行上下文切换,即保存当前的上下文,回复新进程的上下文。
一个进程实际上就是由多个称为线程的执行单元组成,每一个线程都运行在进程的上下文中。并共享全部的代码和数据。函数
虚拟内存是一个抽象的概念,是为进程提供的一个假象,即每一个进程都单独地占用主存,每一个进程看到的内存也都是一致的,称为虚拟地址空间。操作系统
- 程序和代码数据:对全部的进程来讲,代码都是从固定地址开始,
- 堆:
- 栈:虚拟内存中的顶部是用户栈,编译器用来实现函数的调用,程序执行的期间能够动态的扩展和收缩,当咱们调用一个函数时,栈就会增加,从一个函数返回时,栈就会收缩。
计算机中的抽象
- 文件是对 I/O 设备的抽象
- 虚拟内存是对程序存储器的抽象
- 进程是对一个正在运行的程序的抽象
(未完待续)线程