![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
操作系统
我是那小谁
这个作者很懒,什么都没留下…
展开
-
简单的时间片轮转多道程序内核代码分析
本次实验模拟的是操作系统如何进行工作的,对于理解操作系统有很大的帮助。 本次实验主要有三个文件,mypcb.h、mymain.c、myinterrupt.cmypcb.h#define MAX_TASK_NUM 4 /*定义了最大任务数量*/#define KERNEL_STACK_SIZE 1024*8 //定义了内核堆栈的大小/* CPU-sp原创 2016-03-04 22:13:20 · 326 阅读 · 0 评论 -
系统调用
本次实验的主要内容就是实现系统调用,了解系统调用的实现方式! 系统调用:是操作系统为用户态进程与硬件设备进行交互提供的一组接口,系统调用通过软中断向内核发送一个明确的请求,一般每个系统调用对应一个封装例程,库在用这些例程定义出给用户的API API:API俗称应用编程接口(application program interface),只是一个函数定义 Linux系统调用需要三个步骤:原创 2016-03-20 17:22:38 · 374 阅读 · 0 评论 -
跟踪分析Linux内核的启动过程
在Linux操作系统中,系统的启动都是从start_kernel()这个函数开始的。start_kernel()是内核的汇编与C语言的交接点,在该函数以前,内核的代码都是用汇编写的,完成一些最基本的初始化与环境设置工作,比如内核代码载入内存并解压缩(现在的内核一般都经过压缩),CPU 的最基本初始化,为C代码的运行设置环境(C代码的运行是有一定环境要求的,比如stack的设置等)。这里一个不太确切的原创 2016-03-13 20:50:07 · 306 阅读 · 0 评论 -
进程调度
进程调度的时机与进程的切换操作系统原理中介绍了大量进程调度算法,这些算法从实现的角度看仅仅是从运行队列中选择一个新进程,选择的过程中运用了不同的策略而已。 对于理解操作系统的工作机制,反而是进程的调度时机与进程的切换机制更为关键。进程调度的时机 1.中断处理过程(包括时钟中断、I/O中断、系统调用和异常)中,直接调用schedule(),或者返回用户态时根据need_resched标记调用sch原创 2016-04-17 10:55:18 · 624 阅读 · 0 评论 -
Lniux学习心得
一学期的Linux课程结束了,从一开始只知道基本命令到现在能读懂一些内核源码,期间还是收获不少的。孟老师的课程最主要的还是让我们了解了进程的执行过程,就是一个进程如何装载到内存以及如何加载执行。一个进程的运行要有自己的堆栈和上下文。进程切换需要进程从用户态切换到内核态,进程的struct中有一个thread_info数据结构记录了所有有关该进程的上下文和堆栈信息。进程在创建的时候都是复制操作系统中原创 2016-04-30 20:21:16 · 429 阅读 · 0 评论