首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

现代操作系统》—— 进程

前言 操作系统中最核心的概念就是进程。进程是对正在运行的程序的抽象。 没有进程的抽象,现代计算将不复存在。操作系统的其他所有内容都是围绕着进程的概念展开的。所以,透彻的理解进程是非常必要的。...进程 现代计算机经常会在同一时间做多个任务。比如,当系统启动时,会秘密启动许多进程,包括接收邮件的进程、病毒检测进程、文件打印进程等。...本文中,我们假设计算机只有一个CPU,即这个CPU是单核心的(虽然这种假设在现代计算机中几乎不存在)。...但对于通用系统,即我们通常用到的操作系统,因为其还要支持用户动态的启动、关闭一个程序,所以需要操作系统提供某种方法在运行时按需创建、撤销进程。...所以对于通用系统而言,其创建进程的场景是多样的,主要包括以下4种事件: 操作系统初始化创建进程 进程通过系统调用创建新进程 用户手动创建新进程 初始化批处理作业创建新进程 操作系统初始化创建进程 操作系统启动时

67610
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    现代操作系统》—— 线程

    线程的作用 本节中以3个例子进行举例说明操作系统中引入(多)线程模型的作用。这3个例子分别是交互式程序、Web服务器、大数据处理程序。...以下来源于wikipedia: POSIX译为可移植操作系统接口(Portable Operating System Interface,缩写为POSIX)是IEEE为要在各种UNIX操作系统上运行软件...所以POSIX基本上是所有主流操作系统都遵守的协议标准。...1003.2 一个应用于shell和工具软件的标准,它们分别是操作系统所必须提供的命令处理器和工具程序。1992年IEEE通过了这个标准。...优点 用户级线程包可以在不支持线程的操作系统上实现。过去所有的操作系统属于这个范围,但现在不是了。 用户级线程允许每个进程自己定制调度算法。

    92510

    现代操作系统》——内存管理

    前言 内存管理是操作系统中经典的话题。小型嵌入式系统一次只需要执行一个任务,对内存管理没有要求。现代操作系统通常要同时执行多个进程,多个进程所占用的内存之和通常超出物理内存的容量大小。...所以,现代操作系统的设计者就要想办法来调和系统的多任务同时运行、软件体积膨胀和有限的物理内存容量之间的冲突,想尽办法做到鱼和熊掌兼得。这就是本文所介绍的操作系统的内存管理。...但现代的机器中几乎所有的页面管理都是在软件中实现的。TLB表项被操作系统显示的装载。当发生TLB访问失效时,不再由MMU到内存页表中查找并取出需要的页表项,而是生成一个TLB失效并抛给操作系统。...现代计算机都有某种形式的虚拟内存。虚拟内存很好的解决了 ①进程占用内存大于实际内存的问题 ②现代操作系统多道程序同时在内存中运行的问题。...看完本文,我们可以知道,现代操作系统中,无论是PC端桌面系统,还是移动端手机系统,开发者所谈论的内存通常是指“虚拟内存”。

    95700

    现代操作系统》—— 进程间通信问题

    —— Murphy定律 ---- 前言 阅读前面的文章,我们已经知道了进程是操作系统对正在运行的程序的抽象。现代操作系统中,进程通常需要和其他进程进行通信。我们称之为进程间通信 问题。...为了实现互斥而选择适当的原语是任何操作系统的主要涉及内容之一。 临界区 操作系统中,我们把访问共享内存的程序片段称为临界区(critical section)。...笔者总结了C语言作为操作系统御用语言的原因,主要从跨平台、运行效率、内存管理等方面介绍: 成熟度高的语言。 开发操作系统的语言必须是一门成熟的语言。...操作系统的内存管理要非常严格。通常需要编写操作系统的开发者手动开辟/释放内存。而对于有垃圾回收机制的语言来说,比如Java,显然是做不到的。...另一方面,操作系统效果对于上层软件代码的迭代频率低,操作系统的内核几年甚至十几年都变化甚微,所以所谓的使用C语言开发麻烦,在操作系统上也只是“麻烦一次”。

    1.2K10

    现代操作系统 原书第3版》

    现代操作系统(英文版第3版)》内容为:Tanenbaum教授作为三个操作系统的设计师或联合设计师,具有长期设计开发操作系统的经验,从而把其对理论的深入理解和具体实践融入书中,使《现代操作系统(英文版第...3版)》成为操作系统领域的经典之作。...在《现代操作系统(英文版第3版)》第3版中,作者深入讨论了许多主题,包括:进程,线程,存储管理,文件系统,I/O死锁,接口设计,多媒体,性能权衡。以及有关操作系统设计的最新趋势。...书中不仅涵盖了现代操作系统的原理和实践,而且特别关注了Linux操作系统,WindowsVista操作系统、嵌入式操作系统、实时操作系统以及多媒体操作系统。...·在线操作系统练习(http://www prenhall.com/anenbaum/details.html)采用主流windows操作系统以及开源工具。 ·包括操作系统模拟练习。

    77000

    现代操作系统学习之进程与线程

    启动操作系统时,通常会创建若干进程。其中有些是前台进程,也就是同用户交互并且替他们完成工作的那些进程。...第四种终止进程的原因是,当某个进程执行一个系统调用通知操作系统杀死某个其他进程。 4.进程的层次结构,某些系统中,当进程创建了另一个进程后,父进程和子进程就以某种形式继续保持关联。...在操作系统发现进程不能继续运行下去时,发生由运行态到阻塞态的转换;运行态和就绪态的互相转换一般由进程调度程序引起的;当进程等待一个外部事件发生时(如一些输入到达),则发生由阻塞态到就绪态的转换,如果此时没有其他进程运行...操作系统的最底层是调度程序,在它上面有许多进程。所有关于中断处理、启动进程和停止进程的具体细节都隐藏在调度程序中。 6.进程的实现,为了实现进程模型,操作系统维护着一张表格(一个结构数组),即进程表。

    38510

    现代操作系统最核心抽象之一 —— 文件

    本质 说到文件,用惯了图形化操作系统的我们,第一反应是:文件夹中的一个个图标。但现代操作系统鼻祖 —— Unix 最初设计“文件”时,对其定义远不止于此。...普通用户眼中的操作系统其实是程序员常说的 GUI[2](Graphic User Interface,用户图形界面) ,也即一个表面层。...依靠进程(Process)、文件(File)、管道(Pipe)等核心抽象构建的各种系统调用和周边工具,才是真正的向下管理硬件、向上封装接口的操作系统。它是由一段段数据和一个个控制有机组合而成的。...因此,操作系统中的“文件”远不止存在于外存(磁盘或 SSD)那些各种格式的文件,任何 IO 设备(网络通信、外设设备)、管道,甚至内存本身,都可以作为文件被进程打开——因为他们都可以被当做字节流。...正是这种抓住本质的抽象,使得操作系统长我们今天看到的这样——其他过于复杂的抽象和实现都淹没在了历史长河中。 妙处 那么,使用字节流来作为文件的抽象有何妙处呢?

    14710

    现代操作系统部分章节笔记二、进程与线程三、存储管理

    可转化为就绪态(外部事件发生了,此时进程可以继续运行,不过得等待CPU片时间被分配给该进程) 6.进程的实现:为了实现进程模型,操作系统维持了一张进程表。...5.内核空间线程:操作系统的内核直接支持多线程,线程表放在内核之中。有以下优点 1.在用户线程中单独的进程内部是没有时钟中断的,所以用户线程无法进行轮转调度,但是内核线程可以。...而如果程序引用的部分不在物理内存中的地址空间的时候,操作系统需要将缺失的部分装入物理内存中并重新执行指令。...6.页面置换算法:在缺页的时候操作系统会将一个需要的页面替换进物理内存中,此时就需要通过算法来找到最何时的页面被替换出去。

    92070

    操作系统透视:从历史沿革到现代应用,剖析Linux与网站服务架构

    操作系统 操作系统:是一个人与计算机硬件的中介,是一种控制和管理整个计算机系统的硬件和软件资源的系统软件。...,不断持续更新,微软一直在致力于Windows操作系统的开发和完善 优点:占据个人电脑操作系统大部分市场除了IT以外),应用多,美观,娱乐性强,在服务器领域也有windows部分市场。...名词解释 dos 是磁盘操作系统(英文::Disk Operating System)的缩写,是个人计算机上的一类操作系统。...Linux是一套开放源代码程序的、可以自由传播的类Unix操作系统软件,且支持多用户、多任务且支持多线程、多CPU的操作系统 Linux主要用在服务器端、嵌入式开发和个人PC桌面中,服务器端是重中之重...Linux的应用领域 与Windows 操作系统软件一样,Linux 也是一个操作系统软件 但与 Windows 不同的是,Linux 是一套开放源代码程序的,并可以自由传播的类 UNIX 操作系统软件

    20510
    领券