操作系统中的进程和线程调度

时间:2014-01-27 19:23:16

标签: java multithreading process operating-system kernel

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

现在,当我转向线程时,事情开始变得有些混乱。由于一个进程可能包含多个线程,因此每个线程或每个进程的调度是什么?

例如:

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

让我们假设以下内容来简化:

  • VLC流程只有一个帖子。
  • MS Word在其过程中有5个主题。
  • Chrome会为我在浏览器中打开的每个标签创建一个主题。
  • 所有这些程序都是用Java编写的,这些程序中的所有线程都是使用Thread class创建的。

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

调度是在进程上还是在线程上?

线程数越多的进程运行时间越长,或者操作系统是否忽略每个进程中的线程数?

1 个答案:

答案 0 :(得分:1)

应用程序是通过不同的语言开发的,不同的语言以不同的方式实现线程化。基本上有两种不同的实现方式。

  1. 为应用程序中创建的每个线程创建单独的内核线程。
  2. 在应用程序的主线程中管理应用程序创建的线程。
  3. 注意:Java的实现也可以将JVM改为JVM,因此它取决于使用哪个JVM和OS。

    来到你的下一个问题。调度将在线程上而不在进程上。