linux4.1.38 sched.c文件位置在哪里

@GuanSQ 2017-10-20 02:04:21
如题,4.1.38linux内核,sched.c 文件路径是什么啊
...全文
493 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
KimenWu 2017-10-20
  • 打赏
  • 举报
回复
jklinux 2017-10-20
  • 打赏
  • 举报
回复
在内核源码目录下查找不就可以了么? find ./ -name sched.c
Linux内核驱动模块编程指南 (内核版本2.2, 2.4) The Linux Kernel Module Programming Guide CHS Linux内核驱动模块编程指南 (内核版本2.2, 2.4) Peter Jay Salzman Ori Pomerantz 版权 © 2001 Peter Jay Salzman 2003-04-04 ver 2.4.0 -------------------------------------------------------------------------------- 内容表 前言 1. 声明 2. 注意 3. 译者注 1. 序言 1.1. 什么是内核模块? 1.2. 内核模块是如何进入内核工作的? 2. Hello World 2.1. Hello, World (part 1): 最简单的内核模块 2.2. 编译内核模块 2.3. Hello World (part 2) 2.4. Hello World (part 3): 关于 __init and __exit宏 2.5. Hello World (part 4): 内核模块证书和内核模块文档说明 2.6. 从命令行传递参数给内核模块 2.7. 由多个文件构成的内核模块 3. 开始热身 3.1. 内核模块和用户程序的区别 4. 字符设备文件 4.1. 字符设备驱动程序 5. /proc文件系统 5.1. /proc文件系统 6. 使用 /proc 输入 6.1. 使用/proc输入 7. 与设备文件对话 7.1. 与设备文件对话 (writes and IOCTLs)} 8. 操作系统调用 8.1. 操作系统调用 9. 阻塞进程 9.1. 阻塞进程 10. 覆盖Printks 10.1. 覆盖 printk 11. 任务调度 11.1. 任务调度 12. 中断处理 12.1. 中断处理 13. 对称多线程处理 13.1. 对称多线程处理 14. 注意 14.1. 注意 A. 从 2.0 到 2.2的变化 A.1. 从 2.0 到 2.2的变化 B. 为什么这样写? B.1. 为什么这样写? 索引 所用的示例代码的列表 2-1. hello-1.c 2-2. 最基本的内核模块使用的Makefile 2-3. hello-2.c 2-4. 两个内核模块使用的Makefile 2-5. hello-3.c 2-6. hello-4.c 2-7. hello-5.c 2-8. start.c 2-9. stop.c 2-10. 多个源代码文件构成的内核模块使用的Makefile 4-1. chardev.c 4-2. 支持多版本内核的宏 5-1. procfs.c 6-1. procfs.c 7-1. chardev.c 7-2. chardev.h 7-3. ioctl.c 8-1. procfs.c 9-1. sleep.c 10-1. print_string.c 11-1. sched.c 12-1. intrpt.c -------------------------------------------------------------------------------- 继续 序言
操作系统实验三实验报告 基本信息 1.1 实验题目 进程调度算法实验 1.2完成人 王召德 1.3报告日期 2015-4-16 实验内容简要描述 2.1实验目标 加深对进程调度概念的理解,体验进程调度机制的功能,了解 Linux 系统中进程 调度策略的使用方法。 练习进程调度算法的编程和调试技术。 2.2实验要求 设有两个并发执行的父子进程,不断循环输出各自进程号、优先数和调度策 略。进程初始调度策略均为系统默认策略和默认优先级。当某个进程收到 SIGINT 信号时会自动将其优先数加 1,收到 SIGTSTP 信号时会自动将其优先数减 1。请编 程实现以上功能。 2.3实验的软硬件环境 Ubuntu14.04 intelPC 操作系统实验三实验报告全文共5页,当前为第1页。 操作系统实验三实验报告全文共5页,当前为第1页。 报告的主要内容 3.1实验的思路 父进程生成子进程分别都绑定SIGINT和SIGTSTP信号,并且在函数中分别让优先级加一和减一,然后分别打印二十次自己的PID,优先级,调度策略。每次按Ctrl-C优先级会加一,按Ctrl-Z优先级会减一。 3.2实验模型的描述 无 3.3主要数据结构的分析说明 无 3.4主要算法代码的分析说明 无 3.5项目管理文件的说明 无 实验过程和结果 4.1实验投入的实际学时数 1学时 4.2调试排错过程的记录 在调试过程中,两个进程id搞错导致处理错误 操作系统实验三实验报告全文共5页,当前为第2页。4.3多种方式测试结果的记录 操作系统实验三实验报告全文共5页,当前为第2页。 4.4实验结果的分析综合 无 实验的总结 系统可以有多种不同的策略调度进程,其中按照优先级调度,可以给某个进程设置优先级,这个优先级可正可负,可以根据优先级的大小进行调度,而且这个优先级可以在进程执行中改变。 附录 程序源代码 #include <sched.h> #include #include 操作系统实验三实验报告全文共5页,当前为第3页。#include 操作系统实验三实验报告全文共5页,当前为第3页。 #include #include // SIGINT 程序终止(interrupt)信号, 在用户键入INTR字符(通常是Ctrl-C)时发出,用于通知前台进程组终止进程。 // SIGTSTP 停止进程的运行, 但该信号可以被处理和忽略. 用户键入SUSP字符时(通常是Ctrl-Z)发出这个信号 typedef void (*sighandler_t) (int); void sigcat_1(){ printf("SIGINT信号,优先度加一\n"); setpriority(PRIO_PROCESS,getpid(),getpriority(PRIO_PROCESS,getpid())+1); } void sigcat_2(){ printf("SIGTSTP信号,优先度减一\n"); setpriority(PRIO_PROCESS,getpid(),getpriority(PRIO_PROCESS,getpid())-1); } int main(int argc, char *argv[]){ int i,j,pid; //srand((unsigned)time(0)); printf("Ctrl-C让进程优先度加一,Ctrl-Z让进程优先度减一"); if((pid=fork())==0) { signal(SIGINT,(sighandler_t)sigcat_1); signal(SIGTSTP,(sighandler_t)sigcat_2); for(i=0;i<20;i++){ printf("子进程 PID = %d 优先级= %d ,调度策略= %d\n",getpid(),getpriority(PRIO_PROCESS,0),sched_getscheduler(getpid())); /* if(rand()%2){ printf("子进程发送SIGINT信号给父进程\n"); kill(getppid(),SIGINT); }else{ printf("子进程发送SIGTSTP信号给父进程\n"); 操作系统实验三实验报告全文共5页,当前为第4页。 kill(getppid(),SIGTSTP); 操作系统实验三实验报告全文共5页,当前为第4页。 } pause(); */ sleep(1); } }else{ signal(SIGINT,(sighandler_t)sigcat_1); signal(SIGTSTP,(sigha

4,436

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧