mc504---projeto-2's Introduction
Localização dos arquivos: mycall.c: linux-3.12/arch/x86/kernel/ ex-mycall: linux-3.12/ (arquivo de teste) A instalação dos arquivos segue o procedimento descrito na página da discliplina. Idéia: a idéia principal dessa syscall é fazer com que um processo ganhe prioridade de execução sobre todos os outros e execute por um tempo indeterminado, ou seja, até que complete sua tarefa, seja posto para dormir ou sofra uma interrupção. Isso é feito escalonando-se o processo na política FIFO e atribuíndo-se a ele a prioridade máxima dentre a de todos os outros processos que pertençam a classe de escalonamento Real Time (FIFO ou RR). Teoria: no sistema dado, exitem duas classes de escalonamento: Completely Fair Schedule Class e RT schedule Class. Completely Fair Schedule Class: os processos que possuem qualquer uma das seguintes políticas: SCHED_NORMAL, SCHED_OTHER, SCHED_BATCH e SCHED_IDLE pertencem a essa classe de escalonamento. Vale notar que para esses processos, a prioridade não é definida de maneira estática, logo, para cada um desses processos, o sistema operacional calcula a prioridade de execução com base em vários parâmentros e, fazendo uso de uma estrutura de dados do tipo árvore vermelha e preta, organiza a ordem de execução dos mesmos. A implementação dessa classe encontra-se em /kernel/sched/fair.c RT schedule Class: os processos que possuem as políticas FIFO ou RR pertencem a essa classe de escalonamento. Tais processos tem prioridade de execução sobre os processos da classe Completly Fair Schedule e possuem prioridade definida (rt_priority) que vai de 1 (menor prioridade) até 99 (maior prioridade). Processos RR: são escalonados com base na política RR (quantum) e executam até que completem sua tarefa, sejam postos para dormir, sofram uma interrupção ou o seu quantum termine. Processos FIFO: são escalonados com base na política FIFO e executam até que completem sua tarefa, sejam postos para dormir ou sofram uma interrupção. Processos desse tipo podem gerar starvation em processos de menor prioridade. A implementação dessa classe econtra-se em /kernel/sched/rt.c Implementação: a implementação da idéia consiste em verificar, para todos os processos da classe RT, qual possui a prioridade mais elevada, atribuir uma prioridade maior ou igual ao processo cujo pid fora passado como parâmetro e alterar o tipo de escalonamento desse processos para o tipo FIFO. Testes: os testes podem ser realizadas da seguinte forma: 1 - Com o comando top verifica-se um possível processo para ser aplicada a syscall. 2 - Com o comando chrt -p {<pid>} verifica-se qual é a política de escalonamento do processo e sua prioridade. 3 - ./ex-mycall {<pid>} 4 - Com o comando top ou chrt -p {<pid>} pode-se verificar a alteração (se houver).
mc504---projeto-2's People
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.