2014-01-27 119 views
1

调度我的操作系统上学习处理过程,和我到达了它讨论进程和线程的一部分。我知道CPU一次只能运行一个进程,因此有几种调度算法可用于优先处理就绪队列中的进程。进程和线程在操作系统

现在,当我搬到线程事情开始变得有点混乱。由于一个进程可能由多个线程组成,那么对于每个单独的线程或每个进程而言,调度会是什么?

例如:

我在Windows上。我双击一首歌曲在VLC中启动它,然后双击MS Word开始编写报告,最后打开Chrome浏览器检查我的邮件。

让我们假设把事情简单化如下:

  • VLC进程只有一个线程。
  • MS Word在其进程中有5个线程。
  • 浏览器会为每个我在浏览器中打开的选项卡的线程。
  • 所有这些程序都用Java编写的,并在这些程序中的所有线程都使用Thread class创建。

现在哪个是用户线程,哪个是内核线程?

在安排上的过程或者线程?

线程数量较多的进程会运行较长时间还是操作系统不知道每个进程中的线程数量?

+1

线程==轻量级进程。调度发生在线程级别,而不是进程。 –

回答

1

应用程序通过不同的语言发展,不同语言实现的线程不同。基本上有2种不同的实现。

  1. 为应用程序中创建的每个线程创建单独的内核线程。
  2. 在应用程序的主线程中管理应用程序创建的线程。

注意:Java的实现也可能将JVM改变为JVM,因此它取决于使用哪个JVM和OS。

来到你的下一个问题。计划将在线程上不在进程上。