操作系统与进程调度

  • 操作系统
    • 1.操作系统的概念:
    • 2.操作系统的主要功能:
      • 1.进程管理:
      • 2.内存管理:
      • 3.设备管理:
      • 4.文件管理:
      • 5.提供操作系统与用户之间的接口:
    • 3.程序与进程:
      • 3.1 程序与进程的概念:
      • 3.2 程序与进程的区别
      • 3.3 进程与程序的联系
    • 4.操作系统的进程调度:
      • 4.1 进程的特征:
      • 4.2 进程的三态:
      • 4.3 进程调度的时机:
      • 4.4进程调度的算法:

操作系统

1.操作系统的概念:

​ 操作系统(OS,Operating System)是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充。它在计算机系统中占据了重要地位,汇编程序、编译程序、数据库管理系统等系统软件,都依赖于操作系统的支持,需要取得操作系统的服务。

​ 通俗来讲,OS是管理,协调,分配者。主要研究如何高效公平低耗地进行资源的分配、协调工作以及在其中遇到的种种问题。

2.操作系统的主要功能:

1.进程管理:

①进程控制:创建和撤销进程,分配资源、资源回收,控制进程运行过程中的状态转换。

②进程同步:多进程运行进行协调–进程互斥(临界资源上锁)、进程同步。

③进程通信:实现相互合作之间的进程的信息交换。

④调度:作业调度,进程调度。

2.内存管理:

为多道程序的运行提供良好的环境,提高存储器的利用率,方便用户使用,并能从逻辑上扩充内存。

①内存分配:静态分配、动态分配。

②内存保护:各在其内存空间内运行(设两界限寄存器),互不干扰。

③地址映射:地址空间中的逻辑地址转换为内存空间中与之对应的物理地址。

④内存扩充:借助于虚拟存储技术,逻辑上扩充内存容量。

3.设备管理:

完成用户进程提出的I/O请求,为其分配所需I/O设备,完成指定I/O操作;提高CPU和I/O设备的利用率,提高I/O速度,方便用户使用I/O设备。

①缓冲管理

②设备分配

③设备处理:设备驱动程序,用于实现CPU和设备控制器之间的通信。

4.文件管理:

对用户文件和系统文件进行管理以方便用户使用,并保证文件的安全性。

①文件存储空间的管理:为文件分配合理外存空间,文件存储空间的使用情况。

②目录管理:为每个文件建立一个目录项。

③文件的读/写管理和保护

5.提供操作系统与用户之间的接口:

用户接口包括三类:联机用户接口、脱口用户接口和程序用户接口;

3.程序与进程:

3.1 程序与进程的概念:

程序:完成特定任务的一系列指令集合

程序=代码段+数据段

进程:进行就是正在进行中的程序

1、用户角度: 进程是程序的一次动态执行过程

2、操作系统: 进程是操作系统分配资源的基本单位,也是最小实体。

3.2 程序与进程的区别

​ 程序是静态的,进程是动态的,程序是存储在某种介质上的二进制代码,进程对应了程序的执行过程,系统不需要为一个不执行的程序创建进程,一旦进程被创建,就处于不断变化的动态过程中,对应了一个不断变化的上下文环境。

​ 程序是永久的,进程是暂时存在的。程序的永久性是相对于进程而言的,只要不去删除它,它可以永久的存储在介质当中。

3.3 进程与程序的联系

​ 进程是程序的一次执行,而进程总是对应至少一个特定的程序。一个程序可以对应多个进程,同一个程序可以在不同的数据集合上运行,因而构成若干个不同的进程。几个进程能并发地执行相同的程序代码,而同一个进程能顺序地执行几个程序。

​ 关于进程和程序的区别,《现代操作系统》中用了一个比喻形象说明:一位有一手好厨艺的计算机科学家正在为他的女儿烘制生日蛋糕。他有做生日蛋糕的食谱,厨房里有所需要的原料,在这个比喻中,做蛋糕的食谱就是程序(即用适当形式描述的算法),计算机科学家就是处理机(CPU),而做蛋糕的各种原料就是输入数据。进程就是厨师阅读食谱,取来各种原料以及烘制蛋糕等一系列动作的总和。

4.操作系统的进程调度:

4.1 进程的特征:

  • 动态性:进程的实质是程序的一次执行过程,进程是动态产生,动态消亡的。
  • 并发性:任何进程都可以同其他进程一起并发执行。
  • 独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位。
  • 异步性:由于进程间的相互制约,使进程具有执行的间断性,即进程按各自独立的、不可预知的速度向前推进。
  • 结构性:进程由程序段,数据段和PCB组成

4.2 进程的三态:

三态之间的转换:

就绪 → 执行:为就绪线程分配CPU即可变为执行状态"

执行 → 就绪:正在执行的线程由于时间片用完被剥夺CPU暂停执行,就变为就绪状态

执行 → 阻塞:由于发生某事件,使正在执行的线程受阻,无法执行,则由执行变为阻塞

4.3 进程调度的时机:

第一,创建新进程的时候,到底是让父进程运行还是让子进程运行,这就需要进行进程调度。

第二,当有进程退出时,需要进行进程调度,从其他的就绪状态的进程集合中挑选一个运行。

第三,当有进程因为I/O、或者信号量或者别的什么原因阻塞时,需要进行进程调度。

第四,当I/O中断发生,需要做进程调度。

第五,假设硬件始终提供50-60Hz频率的时钟中断,那么,在每个时钟中断,或者每第k个时钟中断需要进行进程调度。

4.4进程调度的算法:

批处理系统常用调度算法:
①、先来先服务
②、最短作业优先
③、最短剩余时间优先
④、响应比最高者优先

分时系统调度算法:
①、轮转调度
②、优先级调度
③、多级队列调度
④、彩票调度

实时系统调度算法:
①、单比率调度
②、限期调度
③、最少裕度法

【操作系统 进程调度】相关推荐

  1. java模拟实现操作系统进程调度中的多级反馈队列算法

    java模拟实现操作系统进程调度中的多级反馈队列算法 操作系统学了一学期了,期末作业布置下来,用编程语言模拟进程调度的过程,只会java,于是就写了一下,通过控制台模拟,模拟过程看起来可能十分不直观. ...

  2. 操作系统-进程调度(FCFS和SJF)

    文章目录 进程调度(FCFS和SJF) 问题描述 实验环境 输入 输出 测试数据 实验设计 数据结构 函数的功能.参数和输出 主要函数算法设计 详细设计 流程图 实验结果与分析 结果展示与描述 结果分 ...

  3. 操作系统 进程调度-银行家算法实验报告

    实验要求 一. 实验目的 死锁会引起计算机工作僵死,因此操作系统中必须防止.本实验的目的在于让学生独立的使用高级语言编写和调试一个系统动态分配资源的简单模拟程序,了解死锁产生的条件和原因,并采用银行家 ...

  4. 0512 操作系统进程调度实验

    实验三进程调度模拟程序 专业:商软2班   姓名:韩麒麟 学号:201406114253 一.    目的和要求 1.1.           实验目的 用高级语言完成一个进程调度程序,以加深对进程的 ...

  5. 5.12 操作系统——进程调度

    1.    目的和要求 1.1.           实验目的 用高级语言完成一个进程调度程序,以加深对进程的概念及进程调度算法的理解. 1.2.           实验要求 1.2.1例题:设计一 ...

  6. 操作系统-进程调度(HRRN和RR)

    文章目录 进程调度(HRRN和RR) 问题描述 实验环境 输入 输出 测试数据 实验设计 数据结构 函数的功能.参数和输出 主要函数算法设计 详细设计 流程图 实验结果与分析 结果展示与描述 结果分析 ...

  7. 操作系统—进程调度—HRRN,RR 高响应比和时间片轮转算法

    1.问题描述及需求分析 设计程序模拟进程的高响应比HRRN和时间片轮转RR调度过程.假设有n个进程分别在T1, - ,Tn时刻到达系统,它们需要的服务时间分别为S1, - ,Sn.如果选择RR算法,还 ...

  8. 操作系统进程调度---优先级调度算法(抢占模式)

    引言 最近学习了操作系统内诸多进程调度算法,动手实现了抢占式优先级调度算法 知识点 该算法又称为优先权调度算法,他既可以用于作业调度,又可用于进程调度.该算法中的优先级用于描述作业运行的紧迫程度. 两 ...

  9. 操作系统进程调度先来先服务FCFS

    一,实验的流程图 二,实验代码 注:本代码主要来自豆丁,加入本人的部分修改..//本FCFS是用不带都结点的链表完成.当然也可以用其他数据结构 #include<stdio.h>#incl ...

最新文章

  1. css颜色rgba代码对照表_改善 CSS 的 10 个最佳实践
  2. numpy.random.normal详解
  3. 产销对接行动倡议书-万祥军:长效机制谋定丰收节交易会
  4. profile based recommendation system
  5. 每天一道LeetCode-----使用最少的操作将一个字符串转换成另一个字符串,只有插入,删除,替换三种操作
  6. 【LoadRunner】安装LoadRunner时提示缺少vc2005_sp1_with_atl_fix_redist解决方案
  7. 【搜索/推荐排序】总结
  8. JEECG v2.3 发布,基于代码生成器的智能开发框架
  9. STVD ERROR:misplaced local declaration
  10. 阿里云自定义日记文件无法通过ftp下载
  11. Javascript特效:输入框焦点判断
  12. ID3、C4.5、CART决策树算法解析(关键内容讲解)
  13. Win10安装RabbitMq遇到的问题解决方案集锦
  14. 不是python中文件操作的相关函数是_以下选项中,不是Python中文件操作的相关函数是:...
  15. 纯css饼图,使用css3画饼图
  16. 微信小程序、微信低版本兼容
  17. Anaconda3安装tensorflow踩坑记录
  18. 信号的基本概念及分类
  19. python要英语基础吗_python学习需要英语基础吗?你真的想多了
  20. 图像分割技术与MATLAB仿真剖析

热门文章

  1. 视频教程-FFmpeg视频播放器开发-C/C++
  2. 连夜干出来一个自动处理【微信消费者投诉管理系统】,支持多商户
  3. 学透CSS-如何组织你的CSS代码
  4. 在桌面新建xls格式工作表打开提示“与扩展名不匹配,文件可能已损坏或不安全,除非您信任其来源,否则请勿打开,是否仍要打开它?”
  5. 看完这篇JavaScript工作中的问题迎刃而解
  6. String.valueOf()使用方法
  7. 支付宝“蚂蚁微客”任务经验分享
  8. Linux 中用 dh_make 将 Qt + CMake 项目打包为 deb 文件
  9. Word文件删除后怎么恢复?好用的恢复方法分享
  10. 废旧安卓手机变Linxu开发