进程控制块

[期末复习] 计算机操作系统复习(一)

青春壹個敷衍的年華 提交于 2019-12-03 11:14:06
操作系统期末复习 第一章-操作系统引论 操作系统的作用 作为计算机硬件系统之间的接口 系统资源的管理者 实现对计算机资源的抽象 操作系统的发展过程 未配置操作系统的计算机系统 人工操作,用户独占全机,资源浪费 脱机输入输出(Off-Line I/O)方式。 单道批处理系统 这里批处理指的是把很多作业放在一个磁带上,一次性输入给计算机 解决了人机矛盾(每执行一道程序都要手动装载)和cpu与I/O设备速度不匹配矛盾。提高了系统的吞吐量。 缺点:系统资源利用率低(I/O请求成功前CPU空闲)。 多道批处理系统 用户提交的作业都放在外存上,形成“后备队列”。 A在执行I/O请求时B进行作业,防止CPU空闲。 多道:从1和2可以看出内存中可以同时存在多个程序,故为多道。 好处:资源利用率高(显而易见,指CPU、存储器、设备和数据利用率高)、系统吞吐量大(指系统在单位时间完成的作业数量提升) 缺点:平均周转时间长、无交互能力 这里注意,提交任务是在外存形成队列,而执行时多道指的是内存中可以有多道程序运行。 分时系统 分时系统出现是为了满足人机交互的需求 分时:采用轮转方式,每隔一段时间片调度下一个作业运行。 分时系统的作业直接进入内存(要注意)。 关键问题:及时接受、及时处理。 实时操作系统 这个我们RM电控用的就是RTOS。 “实时”指的是“及时”而非“实时计算”。 实时系统规定了任务时间

整理

梦想与她 提交于 2019-12-03 08:07:24
操作系统 1. 进程与线程的本质区别、以及各自的使用场景 答:进程是操作系统分配资源的基本单位,线程是cpu调度的基本单位。 线程非共享的,errno变量,独立的栈空间,未决信号集,寄存器和栈指针(指向内核栈) 线程的优点: 通信方便(socket,fifo,pipe,mmap,消息队列),共享数据方便 开销小,提高了程序的并发性 线程的缺点: 库函数调用,并不稳定,对信号不友好(信号的处理方式是共享的),调试困难,不支持gdb 各自的使用场景: 线程:在等待I/O的时候,可以交给一个线程去做,继续去做别的事情 进程:需要安全稳定的时候使用线程,虽然创建一个进程的花费比线程一个大 2. 线程可以看做寄存器和栈的集合,这句话怎么理解? 答: 首先,从内核的角度来看,线程和进程是类似的,都拥有独立的pcb。但是每个线程都有各自的任务需要去执行,这些都保存在各自的寄存器和栈中。在线程中调用函数的时候,是通过栈帧结构实现的。调用函数的时候,将 函数参数,返回地址,ebp指针,esp指针压入栈中进行保存。然后移动ebp指针和esp指针重新为函数创建一个栈帧结构。 因为ebp指针和sep指针的值是储存在寄存器中,并且函数运行空间的申请,参数,函数地址的保存等需要通过栈来实现,所以,线程可以看做寄存器和栈的集合 3. 线程号和线程ID的区别? 线程号是cpu分配时间轮片的依据

操作系统复习笔记

匿名 (未验证) 提交于 2019-12-03 00:32:02
一、什么是进程、线程 进程定义:1、一个正在执行的程序实体 线程:一个进程中可以有多个线程,多个线程共享进程的资源,线程相互独立,有自己的执行态,上下文,可视为在进程内一个独立的程序计数器。 个人理解:进程是个团队,有团队资源,团队内部纪律(进程控制块),线程是团队成员,团队成员彼此独立,共享团队资源 进程资源:处理器时间、存储器、文件、I/O设备 二、并发性:互斥和同步 1、并发原理 伪并行: 单处理器多道程序设计的交替执行。(利用中断,调度到另一个程序) 1)方法:控制中断,控制资源的访问, 2)进程的交互 竞争、通过共享合作、通过通信合作 这里主要讨论竞争关系面临的控制问题:互斥、死锁、饥饿。 临界资源, 使用临界资源的程序称为临界区 3、互斥的要求:一次只准一个进入临界区,不会出现死锁和饥饿,驻留时间有限制・・ 2、几种互斥的硬件实现方法。 1)中断禁用 单个处理器上不能被中断 缺点:多处理器不能保证互斥,且执行速度慢 2)专用机器指令 3、信号量 1)信号量类别 2)原语操作: semWait() 信号量-1 semSignal() 信号量+1 信号量初始化只能为非负值 信号量若为正数,则其值等于执行完semWait后可执行进程的数目(例:s=1,执行完semwait后只可以执行一个进程,若s=0,则semwait后所有进程堵塞) 4)二元信号量操作: 相差的是

操作系统思维导图

匿名 (未验证) 提交于 2019-12-03 00:30:01
目标 方便性 有效性 提高系统资源利用率 提高系统吞吐量 可扩充性 开放性 作用 OS作为用户与计算机硬件系统之间的接口 命令方式 系统调用方式 OS实现了对计算机资源的抽象 未配置操作系统的计算机系统 人工操作方式 用户独占全机 CPU等待人工操作 严重降低了计算机资源的利用率 减少了CPU的空闲时间 提高了I/O速度 效率仍然不理想 单道批处理系统 多道批处理系统 1.资源利用率高 2.系统吞吐量大 3.平均周转时间长 4.无交互能力 (宏观并行,微观串行) 分时系统 特征: 1.多路性 2.独立性 3.及时性 4.交互性 ʵʱϵͳ 微机操作系统的发展 1.并发concurrence 区别并行和并发 并行性是指两个或多个事件在同一时刻发生→宏观并行,微观并行 并发性是指两个或多个事件在同一时间间隔内发生→宏观并行,微观串行 引入进程 进程是指在系统中能独立运行并作为资源分配的基本单位,它是由一组机器指令,数据和堆栈等组成的,是一个能独立运行的活动实体 2.共享sharing 1.互斥共享方式 2.同时访问方式 并发和共享是多用户(多任务)OS的两个最基本的特征。它们又是互为存在的条件 3.虚拟virtual 时分复用技术 空分复用技术 4.异步asynchronism 1.处理机管理功能 进程控制 进程同步 进程互斥方式 进程同步方式(协同) 进程通信 调度 作业调度 进程调度

长春大学软件工程操作系统实验三处理器调度 ―――― 优先数调度算法

匿名 (未验证) 提交于 2019-12-03 00:18:01
实验目的】 在采用多道程序设计的系统中,往往有若干个进程同时处于就绪状态。当就绪进程个数大于处理器数时,就必须依照某种策略来决定哪些进程优先占用处理器。本实验模拟在单处理器情况下的处理器调度,帮助学生加深了解处理器调度的工作。 【实验内容】 选择一个调度算法,实现处理器调度。 【实验指导】 第一题:设计一个按优先数调度算法实现处理器调度的程序。 [ 提示 ] : (1) 假定系统有五个进程,每一个进程用一个进程控制块 PCB 来代表,进程控制块的格式为: 进程名 指针 要求运行时间 优先数 ״̬ 其中,进程名 - 作为进程的标识,假设五个进程的进程名分别为 P 1 , P 2 , P 3 , P 4 , P 5 。 指针 - 按优先数的大小把五个进程连成队列,用指针指出下一个进程的进程控制块的首地址,最后一个进程中的指针为 “0” 。 要求运行时间 - 假设进程需要运行的单位时间数。 优先数 - 赋予进程的优先数,调度时总是选取优先数大的进程先执行 。 ״̬ - 可假设有两种状态, “ 就绪 ” 状态和 “ 结束 ” 状态。五个进程的初始状态都为 “ 就绪 ” ,用 “R” 表示,当一个进程运行结束后,它的状态为 “ 结束 “ ,用 ”E“ 表示。 (2) 在每次运行你所设计的处理器调度程序之前,为每个进程任意确定其 “ 优先数 ” 和 “ 要求运行时间 ” 。 (3)

雷子聊并发编程(002):进程介绍

萝らか妹 提交于 2019-12-03 00:09:39
什么是进程 进程的定义是:指在系统中能独立运行并作为资源分配的基本单位,它是由一组机器指令、数据和堆栈等组成的,是一个能独立运行的活动实体。 通俗直白的讲:进程是系统中正在运行的一个程序,程序一旦运行就是进程。 查看进程 在Windows系统中,打开QQ程序这个软件,系统就会创建一个进程,通过任务栏管理器可以方便直观的查看。如下图所示: 在Linux操作系统中,执行ps -aux指令,下图所示。 进程特征 动态性:进程的实质是程序在多道程序系统中的一次执行过程,进程是动态产生,动态消亡的。在PHP的WEB程序中,用户每次请求都动态产生一个php-fpm的进程,结束后又动态消亡。进程的动态性可以通过top命令查看。 并发性:任何进程都可以同其他进程一起并发执行。进程与线程样都具有并发性,单核CPU,进度在处理多任务时,与线程一样也是轮流使用资源。 独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位。在Windows系统中,同时开启多个应用程序,每个应用程序占用的资源各有不同。 异步性:由于进程间的相互制约,使进程具有执行的间断性,即进程按各自独立的、不可预知的速度向前推进。这好比我们在Windows操作系统中既运行浏览器,又能同时运行QQ接收到消息,他们之间各自独立互不依赖且互不影响,各个程序又保持着运行状态。 结构特征:进程由程序

内存管理

匿名 (未验证) 提交于 2019-12-02 23:57:01
为了让每个进程认为 独占 地使用内存,并且让每个进程看到的内存是 一致 的,操作系统对物理内存、磁盘进行了 抽象 ,抽象出 虚拟内存 。并且把虚拟内存、物理内存以相同固定大小的 ҳ 进行切分管理( 分页 ),虚拟内存中叫页,物理内存中的叫页帧。 每个进程虚拟地址空间是独立的。用户访问的是虚拟内存的地址,即虚拟地址。需要通过 CPU 芯片上的 内存管理单元 MMU 硬件根据页表 翻译 成物理地址,才能真正访问内存。 页表 :每个进程都有它的独立的页表(放在内存里),用来存对虚拟页、物理页的 映射 。页表可以有多级页表,以时间换取空间(实际上,多级页表的地址翻译,并不比单级页表慢很多)。 如果直接按一个个程序加载到内存,会出现内存 碎片 。 后来出现 分段 机制,按程序的各段来存储,从而减少碎片,但是还是有很多。 所以引出分页,把程序分成更小的页(一般大小为 4KB )来管理内存。分得更小,会增加负荷,但实际上利大于弊。 通过虚拟地址 访问 数据: MMU 先通过它里面的 TLB 缓存查询,如果没有,则去内存中的 页表 进行查询。成功翻译成物理地址后,访问 一级缓存 获取数据。如果没有则访问 二级缓存 (可能还有三级缓存)。还是没有就访问 内存 。 物理内存 不够 时: 将不用的页面换出到磁盘中的 swap 分区 里。 包含: 程序代码和静态变量(根据可执行文件进行初始化,并固定了大小

【面试题】操作系统

匿名 (未验证) 提交于 2019-12-02 23:55:01
基础知识 1、操作系统的特性 并发 共享 虚拟 异步 2、操作系统的主要功能 进程控制 进程同步 进程通信 进程调度 3、程序并发的特征 间断性 失去封闭性 不可再现性 4、程序的特征 动态 并发 独立 异步 5、程序的三态模型,五态模型 6、为什么要引入挂起状态   终端用户需要、父进程需要、负荷调节需求、操作系统需求 7、引入挂起后的状态转换 8、进程控制块PCB的作用   作为进程独立运行基本单位的标志,能够实现间接运行方式,提供经常管理所需要的信息,提供进程调度所需要的信息,实现与其他进程的同步与通信 9、什么是临界区?如何解决冲突?   每个进程中访问临界资源的那段程序称为临界区,每次只允许一个进程进入临界区,进入后不允许其他进程进入。 如果有若干进程要求进入空闲的临界区,一次仅允许一个进程进入 如果已有进程进入临界区,则其他所有试图进入临界区的进程必须等待 进入临界区的进程要在有限时间内退出,以便其他进程能及时进入临界区 如果进程不能进入临界区,应该让出CPU,避免进程出现“忙等”现象 10、进程同步机制应该遵循的规则   空闲让进,忙则等待,有限时间,让权等待 11、进程同步经典问题 生产者――消费者 哲学家进餐问题 读者――写者问题 12、进程间的通信如何实现?   低级通信:效率低,生产者每次只能向一个缓冲池投放一个信息;通信对用户不透明,隐藏了通信的具体细节  

操作系统基础知识概要

匿名 (未验证) 提交于 2019-12-02 23:43:01
第一章 操作系统os是所有软件中最靠近硬件的系统软件,常被看做是计算机硬件的第一层扩充。 命令,图标,窗口? 操作系统的作用:1. 计算机和用户之间起到接口作用 2管理和控制计算机系统的硬件和软件资源(计算机系统中各种各样的硬件和软件资源归纳起来可分为四类:处理器、存储器、 I/O设备以及信息(数据和程序)。 3组织计算机的工作流程 4. 为用户提供工作环境(从虚拟机器的观点看) 操作系统为用户提供了三种类型的用户接口,分别是 命令 接口、 程序接口和图形接口。 操作系统分类1.单道批处理系统(系统的特征: (1) 自动性。(2) 顺序性。 (3) 单道性。 (4) 无交互性。)) 2. 多道批处理系(系统特征:多道性。 无序性。 调度性。) 3. 分时操作系统(系统特征:多路性。(2) 独立性。 (3) 及时性。 (4) 交互性) 4.实时系统 (特征:及时性;交互性;安全可靠性;多路性) 操作系统的基本特征:并发共享虚拟异步 并发和共享是操作系统的两个最基本的特征,它们又是互为存在的条件。 第二章 2.1前驱图和程序的执行 程序的顺序执行:必须按照某种先后次序顺序执行,仅当前一操作(程序段)执行完后才能执行后继操作 特征:顺序性,封闭性,可再现性 并发执行的特征:间断性,失去封闭,不可再现 2.2进程的描述 为什么引入进程?什么是进程?(简答) 为使程序能并发执行

进程间通信――共享内存(Shared Memory)

匿名 (未验证) 提交于 2019-12-02 23:42:01
原文:https://blog.csdn.net/ypt523/article/details/79958188 共享内存是System V版本的最后一个进程间通信方式。共享内存,顾名思义就是允许两个不相关的进程访问同一个逻辑内存,共享内存是两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常为同一段物理内存。进程可以将同一段物理内存连接到他们自己的地址空间中,所有的进程都可以访问共享内存中的地址。如果某个进程向共享内存写入数据,所做的改动将立即影响到可以访问同一段共享内存的任何其他进程。 特别提醒:共享内存并未提供同步机制,也就是说,在第一个进程结束对共享内存的写操作之前,并无自动机制可以阻止第二个进程开始对它进行读取,所以我们通常需要用其他的机制来同步对共享内存的访问,例如信号量。 下面就 Shared Memory 的IPC作以阐述与分析。 共享内存的通信原理 在Linux中,每个进程都有属于自己的进程控制块(PCB)和地址空间(Addr Space),并且都有一个与之对应的页表,负责将进程的虚拟地址与物理地址进行映射,通过内存管理单元(MMU)进行管理。两个不同的虚拟地址通过页表映射到物理空间的同一区域,它们所指向的这块区域即共享内存。 共享内存的通信原理示意图: 对于上图我的理解是:当两个进程通过页表将虚拟地址映射到物理地址时