操作系统-schedule函数
1. Linux 0.11的调度函数schedule()
- 也就是找到了counter最大的进程,然后就跳出去执行switch_to,对应上面的优先级算法,而counter本身也是时间片,也作了轮转调度
- 现在就绪态的所有进程的时间片都用完了counter=0,右移+本身就是把counter设置成初值,而如果是其他进程,阻塞的那些进程就把counter除2再加上初值,这样的话,当阻塞态进程变成就绪态的话,也就是那些IO进程成就绪态的话,它对应的counter一定大,优先级就高,那么就先执行,而且执行的时间也稍微长点
2. counter的作用:时间片
这是在时钟中断,每次时钟中断都让counter=0,然后就开始切换
3. counter的作用:优先级
4. counter的作用
IO时间越长,counter越大?对应前面的第二点
操作系统-schedule函数的更多相关文章
- schedule()函数的调用时机(周期性调度)
今天纠正了一个由来已久的认识错误:一个进程的时间片用完之后,当再次发生时钟中断时内核会调用schedule()来进行调度,把当前的进程上下文切出CPU,并把选定的下一个进程切换进来运行.我一直以为sc ...
- 嵌入式操作系统---打印函数(printf/sprintf)的实现
一.打印函数简介 作用:将“给定的内容”按照“指定的格式”输出到“指定目标内”. 打印函数的基本格式: char print_buf[BUF_SIZE]; void printf(const char ...
- 对于Linux内核执行过程的理解(基于fork、execve、schedule等函数)
382 + 原创作品转载请注明出处 + https://github.com/mengning/linuxkernel/ 一.实验环境 win10 -> VMware -> Ubuntu1 ...
- 进程调度函数schedule()分析
1.功能简述: 最主要作用就是 从就绪进程中选择一个优先级最高的进程来代替当前进程运行. 2.代码分析 schedule(); struct task_struct *tsk = cur ...
- Linux内核分析之操作系统是如何工作的
在本周的课程中,孟老师主要讲解了操作系统是如何工作的,我根据自己的理解写了这篇博客,请各位小伙伴多多指正. 一.知识点总结 1. 三个法宝 存储程序计算机:所有计算机基础性的逻辑框架. 堆栈:高级语言 ...
- 关于fork( )函数父子进程返回值的问题
fork()是linux的系统调用函数sys_fork()的提供给用户的接口函数,fork()函数会实现对中断int 0x80的调用过程并把调用结果返回给用户程序. fork()的函数定义是在init ...
- Linux操作系统学习_操作系统是如何工作的
实验五:Linux操作系统是如何工作的? 学号:SA1****369 操作系统工作的基础:存储程序计算机.堆栈(函数调用堆栈)机制和中断机制 首先要整明白的一个问题是什么是存储程序计算机?其实存储程序 ...
- 第一次作业:基于Linux操作系统深入源码进程模型分析
1.Linux操作系统的简易介绍 Linux系统一般有4个主要部分:内核.shell.文件系统和应用程序.内核.shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序.管理文件并使 ...
- XV6操作系统代码阅读心得(二):进程
1. 进程的基本概念 从抽象的意义来说,进程是指一个正在运行的程序的实例,而线程是一个CPU指令执行流的最小单位.进程是操作系统资源分配的最小单位,线程是操作系统中调度的最小单位.从实现的角度上讲,X ...
随机推荐
- Hadoop_在linux中安装hadopp出现的问题
问题 sudo: no valid sudoers sources found, quitting 网络解决方法 链接:sudo: no valid sudoers sources found, qu ...
- every|each|the用于姓氏的复数形式|comrades-in-arms|clothes are|word|steel|affect|effect
________ man in the crowd raised his hand. A. All B. Each C. Every D. Both 题目解析 考查代词的用法.此句意思是:人群 ...
- python3下scrapy爬虫(第十卷:scrapy数据存储进mysql)
上一卷中我将爬取的数据文件直接写入文本文件中,现在我将数据存储到mysql中,我依然用的是pymysql,这个很麻烦建表需要在外面建 这次代码只需要改变pipyline就行 来 现在看下结果: 对比发 ...
- 吴裕雄--天生自然Android开发学习:下载安装android stuio集成开发工具
下载链接: https://developer.android.google.cn/index.html
- hadoop创建两大错误:Bad connection to FS. command aborted. exception和Shutting down NameNode at hadoop
1.问题目录表: Error代码 failed on connection exception: java.net.ConnectException: Connection refused 3. ...
- ionic3懒加载IonicPage使用报错
ionic3.X版本有不少亮点.作为从angular1到ionic1.ionic2一直用它们开发单页面应用的使用者来说,一直存在的一个痛点就是,将整个项目作为网页不打包成app的话,第一次加载时间太长 ...
- 使用java列举所有给定数组中和为定值的组合
import java.util.Arrays; public class SolveProb { ]; ;// 记录当前 public SolveProb() { } public static v ...
- 吴裕雄--天生自然python编程:turtle模块绘图(1)
Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x.纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行 ...
- java 通过数据库名获得 该数据所有的表名以及字段名、字段类型
package com.nf.lc.sql_meta_data; import java.sql.*; import java.util.HashMap; import java.util.Map; ...
- JAVA Web期末项目第三阶段成果
我们做的系统是一个基于Java web与MySQL的食堂点餐系统 班级: 计科二班 小组成员:李鉴宣.袁超 项目的测试 在系统部署到云服务器之前,已经在本机上进行了部署测试,通过mvn打包生成war文 ...