【问题标题】:What is the difference between thread states and process states?线程状态和进程状态有什么区别?
【发布时间】:2019-04-25 15:51:23
【问题描述】:

我了解到,如果一个进程被阻塞,它将被换出到磁盘并等待唤醒事件。但是,如果一个进程可以有多个线程,如果一个线程被阻塞了怎么办?例如,线程之一等待键盘,即使是,该线程将被阻塞。那么进程也会被阻塞,还是有可能只有线程被阻塞而进程在运行呢?

【问题讨论】:

  • Re,“如果一个进程被阻塞,它将被换出到磁盘” 你一直在阅读一些非常古老的书籍。交换整个进程是 1960 年代最先进的内存管理,但从 1970 年代开始,它被 paging 取代。在任何现代操作系统中,被阻塞进程的内存映像将以相对较小的增量被复制到辅助存储(例如磁盘),称为 pages,并且只有当那些其他进程需要占用页面...
  • ...另外,分页与进程状态几乎是分离的。 RAM 页面通常根据进程上次访问页面后的时间来选择进行重用,而不考虑进程是否正在运行、等待运行或等待 I/O 等。

标签: multithreading process lifecycle


【解决方案1】:

我了解到,如果一个进程被阻塞,它将被换出到磁盘并等待唤醒事件。

您可能正在阅读一些非常古老的文档。很可能“进程”是指由内核调度的东西。

但是,如果一个进程可以有多个线程,如果一个线程被阻塞了怎么办?例如,其中一个线程等待键盘事件,该线程将被阻塞。那么进程也会被阻塞,还是有可能只有线程被阻塞而进程在运行呢?

如果您将“进程”定义为包含地址空间、文件描述符集等并且可以包含多个线程的容器,那么就不会出现进程被阻塞的情况。什么会阻止一个进程?

【讨论】:

    猜你喜欢
    • 2018-08-11
    • 2013-03-18
    • 2018-02-06
    • 1970-01-01
    • 2019-08-03
    • 1970-01-01
    • 1970-01-01
    • 2021-07-31
    相关资源
    最近更新 更多