Beruflich Dokumente
Kultur Dokumente
SUMRIO
Introduo ......................................................................................................................... 3
1
Objetivo ..................................................................................................................... 4
Problema proposto..................................................................................................... 5
4.2
4.3
Concluses .............................................................................................................. 13
Bibliografia.............................................................................................................. 14
INTRODUO
Este relatrio visa detalhar o trabalho realizado pelos alunos referentes ao Grupo
2 como parte integrante da disciplina de Sistemas Operacionais do curso de Engenharia
Mecatrnica da Universidade Federal de Uberlndia.
O tema decorrente da discusso de gerenciamento de processos, que um dos
tpicos abordados na teoria, sendo o presente trabalho uma das tcnicas adotadas para
melhor abordagem do assunto, bem como tornar um pouco mais prtico os conhecimentos
adquiridos em sala de aula.
Desta forma, este relatrio ir abordar assuntos referentes a como implementar
uma system call no sistema operacional Linux que efetue anlises a nvel de processos
correntes no sistema.
Inicialmente, o grupo optou por uma abordagem terica, embasada por fontes
eletrnicas e livros. Em sequncia, encontra-se um detalhamento das prticas adotadas
para a implementao da mesma. E, finalmente, concluses apresentado resultados e
dificuldades encontradas na execuo do trabalho.
OBJETIVO
Este trabalho tem como objetivo a anlise, o projeto, bem como a implementao
de uma system call para o sistema operacional Linux (x86) por parte dos alunos que esto
cursando a presente disciplina.
Tal system call tem como funo a anlise de caractersticas tpicas de processos
existentes em sistemas operacionais, como PID do processo pai (PPID parent process
identify), UID (user identify) e tempo de existncia.
PROBLEMA PROPOSTO
Tempo de existncia.
3.1
FUNDAMENTAO TERICA
System Call
System Call, ou em portugus, chamada de sistema, pode ser definida como uma
funo responsvel por chamar o kernel do sistema para que este faa uma determinada
tarefa. Como o usurio no pode, diretamente, realizar operaes com o kernel, as
chamadas de sistemas foram criadas.
A Figura 1 trata-se de uma ilustrao de como funciona as system calls. Como
pode-se notar, uma determinada aplicao, ou mesmo o usurio, quando deseja solicitar
determinado servio do kernel, faz uma system call, sendo que a mesma ir se ocupar do
papel de passar todas as informaes para que ele execute a ao desejada.
Para uma melhor anlise, as system calls foram divididas em quatro grandes
grupos, sendo estes:
4.1
Compilao do Kernel
4.2
System Call
#include <linux/sched.h>
#include <linux/pid.h>
#include <linux/kernel.h>
#include <linux/cred.h>
#include <linux/ktime.h>
asmlinkage long sys_tcdso(int p){
pid_t pid = p;
kuid_t credd_uid;
long int tempost;
struct pid *pid_struct = find_get_pid(pid);
struct task_struct *task =
pid_task(pid_struct,PIDTYPE_PID);
struct task_struct *taskp =
pid_task(pid_struct,PIDTYPE_PID);
struct timespec tmp;
if (task == NULL){
return (-1);
}
else {
tempost = task -> start_time;
tmp = ktime_to_timespec(ktime_get_boottime());
credd_uid = task->cred->uid;
taskp = taskp -> parent;
printk("UID do processo: %ld.\n",credd_uid);
printk("PID do PAI: %ld.\n",(long int)taskp ->
pid);
printk("Tempo de vida [s]: %ld.\n", tmp.tv_sec
- tempost/1000000000);
return (0);
}
}
8
10
4.3
12
CONCLUSES
13
BIBLIOGRAFIA
[1] Chamadas de Sistema - O que so, Para que servem e Exemplos de System Call,
Programao
Progressiva.net,
[Online].
Available:
http://www.programacaoprogressiva.net/2014/09/O-que-sao-Chamadas-deSistema-para-que-servem-Exemplos-de-System-Calss.html. [Acesso em 19
Novembro 2015].
[2] R. M. JUNIOR, Sistemas Operacionais - Gerncia de processador, [Online].
Available:
http://www.facom.ufu.br/~rivalino/facom49060/%5b1%5d%20Slides%20(Lecture
%20Notes)/UNIDADE%20IV/FACOM49060%20-%20Unidade%20IV.pdf.
[Acesso em 19 Novembro 2015].
[3] Tutorial - Compilao de um novo Kernel Linux, [Online]. Available:
http://www.facom.ufu.br/~rivalino/facom49060/%5B2%5D%20Papers%20&%20
TRs/tutorial-kernel-generico.pdf. [Acesso em 19 Novembro 2015].
[4] Tutorial - Adicionando novas chamadas de sistema ao kernel Linux, [Online].
Available:
http://www.facom.ufu.br/~rivalino/facom49060/%5B2%5D%20Papers%20&%20
TRs/tutorial-syscall-linux.pdf. [Acesso em 22 Novembro 2015].
[5] A. S. TANENBAUM, Sistemas Operacionais Modernos, 3 ed., vol. I, So Paulo:
Pearson Education do Brasil Ltda., 2010.
[6] R. LOVE, Linux Kernel Development - A thorough guide to the design and
implementation of the Linux kernel, 3 ed., Crawfordsville: Pearson Education, Inc.,
2010.
14