上一篇文章阐述了进程的基本信息,本文主要介绍进程的实现,主要内容:

  1. 进程表(Process Table or Process Control Blocks)
  2. 中断处理(Interrupt)

一、进程表

操作系统以数组的形式维护了一个进程表,每个进程有一个入口,示意图如下图所示。针对每一个进程,进程表中保存着进程的状态、程序计数器(PC)、指向栈的指针、进程对应内存的地址等等。

上图中的Scheduler会处理外部的中断以及对于进程的调度。

当进程的状态有Running切换为Ready或者Blocked时,进程的所以数据都应该被正确的保存,从而当再次运行时候进程能够像从来没有被停止过一样继续运行。

二、中断处理

2.1 中断示意

上一篇文章就说了一个CPU同一时间只能运行一个进程,但是用户却有电脑同时运行很多进程的假象。上一篇文章的解释是CPU会调度,让不同的进程轮流在CPU上进行运行。这个调度在操作系统中是通过中断来实现的。比如用户正在用Word进行编辑,突然有一封邮件到达了,这个时候操作系统会产生一个中断,该中断最终会让CPU开始运行Email进程。

2.2 中断处理

上面的示意图中Word Process的状态从Running变为了Ready。等Email处理完成,CPU最终还会回到Word进程,Word进程会再次运行,上面说了当再次运行时,Word进程应该如同没有被停止过一样,如何做到?这里最主要的就是在中断发生后对当前运行进程的数据以及状态的保存。

基本流程:

Operating System-Process(2)进程表&&中断处理的更多相关文章

  1. [Chapter 3 Process]Practice 3.3 Discuss three major complications that concurrent processing adds to an operating system.

    3.3  Original version of Apple's mobile iOS operating system provied no means of concurrent processi ...

  2. book-rev8 Chapter 0 Operating system interfaces

    Chapter 0 第0章 Operating system interfaces 操作系统接口 The job of an operating system is to share a comput ...

  3. osquery An Operating System Instrumentation Framewor

    catalog . Getting Started . install guide for OS X and Linux . Features Overview . Logging . query e ...

  4. POJ #2448 A New Operating System

    Time Limit: 20000MS   Memory Limit: 65536K Total Submissions: 1165   Accepted: 110 Case Time Limit: ...

  5. 如何定位“Operating system error 32(failed to retrieve text for this error. Reason: 15105)”错误中被占用的文件

      之前在这篇"Operating system error 32(failed to retrieve text for this error. Reason: 15105)"博 ...

  6. Operating system error 32(failed to retrieve text for this error. Reason: 15105)

    一台数据库服务器的事务日志备份作业偶尔会出现几次备份失败的情况,具体的错误信息为: DATE/TIME:    2018/7/30 12:10:52 DESCRIPTION: BackupDiskFi ...

  7. How to Make a Computer Operating System

    How to Make a Computer Operating System 如何制作一个操作系统(翻译版) 原文地址:Github:How to Make a Computer Operating ...

  8. InnoDB: Operating system error number 87 in a file operation. 错误87的解决方法

    InnoDB: Operating system error number 87 in a file operation. 错误87的解决方法 140628  8:10:48 [Note] Plugi ...

  9. Modern Operating System

    No one can do all things, learn to be good at use what others already did. Most computers have two m ...

  10. Operating system management of address-translation-related data structures and hardware lookasides

    An approach is provided in a hypervised computer system where a page table request is at an operatin ...

随机推荐

  1. [笔记]我的Linux入门之路 - 02.***-Qt5配置

    作为一个学习中的程序员,查wiki等,***肯定是刚需.况且没有它很多东西都下不下来.我在windows环境下使用的是shadowsocks,那么在linux下也使用它. 一.SS版本 SS版本众多, ...

  2. CentOS查看和修改MySQL字符集

    通过以下命令查看了MySQL的字符集 连接上mysql服务,输入以下命令 mysql>show variables like 'character_set%'; 显示如下: 为了让MySQL支持 ...

  3. JDK动态代理连接池

    JDK动态代理   1 什么是JDK动态代理 刚刚写ItcastConnection时爽么?因为Connection中的方法太多了,每个都要写,所以很累吧.累点到是没什么,可以完成功能就是好的.但是不 ...

  4. 怎样将lua移植到arm平台的linux内核

    将脚本移植到内核是一件非常酷的事情,lua已经被移植到NetBSD的内核中,也有一个叫lunatik的项目把lua移植到了linux内核.仅仅可惜仅仅支持x86.不支持arm,在网上搜索了下,没有找到 ...

  5. Oracle视图传递参数

    在Oracle里,视图不像存储过程和函数一样,可以定义输入参数,但我们可以变个方式,使用程序包来实现. oracle package: oracle package是oracle包,是一组相关过程.函 ...

  6. 常见数据挖掘算法的Map-Reduce策略(2)

           接着上一篇文章常见算法的mapreduce案例(1)继续挖坑,本文涉及到算法的基本原理,文中会大概讲讲,但具体有关公式的推导还请大家去查阅相关的文献文章.下面涉及到的数据挖掘算法会有:L ...

  7. 转 开启“大数据”时代--大数据挑战与NoSQL数据库技术 iteye

    一直觉得“大数据”这个名词离我很近,却又很遥远.最近不管是微博上,还是各种技术博客.论坛,碎碎念大数据概念的不胜枚举. 在我的理解里,从概念理解上来讲,大数据的目的在于更好的数据分析,否则如此大数据的 ...

  8. AC自动机的一点理解

    \(fail\)指针:指向最长的在\(tire\)里出现的后缀 比\(tire\)多出来的子边:原来的\(tire\),我们失配后又得返回根结点再次匹配,而加入这些边后只需要花\(strlen(s)\ ...

  9. EntityFramework 学习 一 Lazy Loading

    延迟加载:延迟加载相关的数据 using (var ctx = new SchoolDBEntities()) { //Loading students only IList<Student&g ...

  10. Hessian 序列化和反序列化实现

    先聊聊 Java的序列化,Java官方的序列化和反序列化的实现被太多人吐槽,这得归于Java官方序列化实现的方式. 1.Java序列化的性能经常被吐槽.2.Java官方的序列化后的数据相对于一些优秀的 ...