Mar*_*usJ 5 cpu operating-systems multi-core
我知道,模糊的问题标题,但我的主要问题是,1 个核心一次只能执行一个程序吗?CPU 级别的“多任务处理”是否通过在任务之间切换来工作,如果是,为什么?为什么 CPU 不能同时处理多个任务?他们有数十亿个晶体管,为什么有些晶体管不能解决一个问题,而另一些则不能解决另一个问题?是硬件限制,还是操作系统限制?
晶体管无法“解决问题”。它是 CPU 的基本构建块,本身无用,但需要构建逻辑门(然后可以计算简单的操作,例如加法等......)。单个内核中有很多硬件,而不仅仅是一个晶体管。
CPU 的功能远不止“做事”那么简单。有一个虚拟内存管理器、一个硬件缓存管理器、将 CPU 连接到主板和系统内存的各种接口等……多核 CPU 通常共享实际 CPU 内部的许多硬件。
“程序”是一个软件概念——CPU 不知道它是什么。CPU 所做的只是执行操作系统发送的操作。从这个意义上说,单核CPU一次只能执行一个逻辑运算。但是,即使在单核处理器上,您仍然可以同时执行多个操作,因为操作系统会以非常快的速度切换当前正在运行的程序。多核 CPU 允许您同时运行多个任务,操作系统可以利用这一点,让您轻松地同时运行更多程序,或者让一个程序利用多核来运行得更快。
从技术上讲,“程序”是一个分为一个或多个线程的进程,每个线程在执行时都是独立的,它们都有自己的堆栈、CPU 上下文(寄存器等)和其他东西,尽管它们仍然可以通信显然,在这个过程中彼此之间。
| 归档时间: |
|
| 查看次数: |
8229 次 |
| 最近记录: |