写点什么

Linux 内核时钟机制及调度算法

用户头像
hanaper
关注
发布于: 4 小时前
Linux内核时钟机制及调度算法

一、分析 Linux 内核源码有何意义?

  • 1、我们可以开发适合自己的操作系统(开发嵌入式操作系统、开发实时操作系统)

  • 2、可以开发出高水平软件

  • 3、有助于计算机在教学研究当中和科研当中


Linux内核时钟机制及调度算法配套视频教程


二、硬件时钟及运作机制原理

1、硬件时钟(PC 机: RTC 实时时钟又称为 CMOS 时钟和 OS 时钟产生于 PC 主板定时/计数芯片又称软时钟或者系统时钟)

定时/计数芯片典型:8253/8354 可编程定时/计数芯片。

OS 时钟和 RTC 之间要通过 BIOS 进行连接,因为传统 PC 机的 BIOS 中固化有对 RTC 进行有关操作的函数。比如 INT1AH 等中断服务程序。Linux 在内核初始化完成之后就会完全抛弃 BIOS 中的程序。

2、时钟动作机制原理


Linux内核时钟机制及调度算法配套视频教程


3、Linux 的内核时间系统(源码)

time.h 源码

#ifndef _TIME_H#define _TIME_H
#ifndef _TIME_T#define _TIME_Ttypedef long time_t;#endif
#ifndef _SIZE_T#define _SIZE_Ttypedef unsigned int size_t;#endif
#ifndef NULL#define NULL ((void *) 0)#endif
#define CLOCKS_PER_SEC 100
typedef long clock_t;
struct tm { int tm_sec; int tm_min; int tm_hour; int tm_mday; int tm_mon; int tm_year; int tm_wday; int tm_yday; int tm_isdst;};
#define __isleap(year) \ ((year) % 4 == 0 && ((year) % 100 != 0 || (year) % 1000 == 0)) clock_t clock(void);time_t time(time_t * tp);double difftime(time_t time2, time_t time1);time_t mktime(struct tm * tp);
char * asctime(const struct tm * tp);char * ctime(const time_t * tp);struct tm * gmtime(const time_t *tp);struct tm *localtime(const time_t * tp);size_t strftime(char * s, size_t smax, const char * fmt, const struct tm * tp);void tzset(void);
#endif
复制代码

timespec 结构体

struct timespec {   //精度非常高的表示类型    time_t tv_sec;          /* seconds */       //秒second    longtv_nsec;            /* nanoseconds */   //纳秒:十亿分之一秒(nanosecond)};
复制代码

timeval 结构体

struct timeval {    //普通精度    time_ttv_sec;           /* seconds */        //秒    suseconds_t tv_usec;    /* microseconds */   //微秒:百万分之一秒(microsecond)};
复制代码

timezone 结构体

struct timezone {   //时区    int tz_minuteswest;     /* minutes west of Greenwich */ //格林尼治时间往本文的时差    int tz_dsttime;         /* type of dst correction*/     //时间修改方式}
复制代码


Linux内核时钟机制及调度算法配套视频教程


三、时钟中断/程序调度算法

LinuxOS 时钟的物理产生原因是可编程定时/计数器产生的输出脉冲,此脉冲传入到 CPU,就可以引发出一个中断请求信号,这个就称为时钟中断。“时钟中断”是整个操作系统的脉博。



Linux内核时钟机制及调度算法配套视频教程

发布于: 4 小时前阅读数: 3
用户头像

hanaper

关注

还未添加个人签名 2018.05.07 加入

还未添加个人简介

评论

发布
暂无评论
Linux内核时钟机制及调度算法