DEE355 – Sistemas Operacionais
Universidade Federal do Paraná (UFPR)
Prof. Jéfer – jefer@ufpr.br
# Monitorar operações de E/S com iostat
iostat -x 1
# Exemplo de uso de buffer em Python
buffer = bytearray(1024) # Cria um buffer de 1 KB
with open('arquivo.txt', 'rb') as arquivo:
while True:
bytes_lidos = arquivo.readinto(buffer)
if not bytes_lidos:
break
processar_dados(buffer[:bytes_lidos])
O software de E/S é organizado em camadas para abstrair a complexidade do hardware e fornecer uma interface uniforme aos aplicativos. As principais camadas são:
read
, write
).libusb
para acesso a dispositivos USB.# Exemplo de uso de APIs de E/S no Linux
with open('/dev/sda', 'rb') as dispositivo:
dados = dispositivo.read(1024) # Lê 1 KB de dados do dispositivo
print(dados)
# Exemplo de monitoramento de disco no Linux
iostat -x 1 # Exibe estatísticas de E/S do disco em tempo real
.txt
) com permissões de leitura/escrita.# Criação de links no Linux
ln -s /caminho/original /caminho/link_simbolico # Link simbólico
ln /caminho/original /caminho/hard_link # Hard link
# Exemplo de operações com arquivos no Linux
touch arquivo.txt # Cria um arquivo vazio
echo "Hello, World!" > arquivo.txt # Escreve no arquivo
cat arquivo.txt # Lê o conteúdo do arquivo
rm arquivo.txt # Exclui o arquivo
O sistema de arquivos é organizado em camadas para abstrair a complexidade do hardware e fornecer uma interface uniforme aos aplicativos. As principais camadas são:
# Exemplo de uso de comandos para gerenciar sistemas de arquivos no Linux
df -h # Exibe o uso de espaço em disco
du -sh /caminho/pasta # Mostra o tamanho de um diretório
lsblk # Lista dispositivos de bloco e partições
As operações de E/S e o gerenciamento de arquivos são fundamentais para a interação entre o sistema operacional e o hardware. Segundo Silberschatz, o sistema de arquivos abstrai o armazenamento físico, fornecendo uma interface uniforme para os usuários e aplicativos. Já Tanenbaum destaca a importância do gerenciamento de permissões e da eficiência nas operações de E/S.
dd
: Transferência de dados entre dispositivos.
dd if=/dev/sda of=backup.img bs=4M
(cria uma imagem de backup do dispositivo /dev/sda
).dd if=/dev/zero of=arquivo.vazio bs=1M count=100
(cria um arquivo de 100 MB preenchido com zeros).iotop
: Monitoramento das operações de E/S em tempo real.
sudo iotop
(mostra processos que estão realizando operações de E/S).iotop -o
para exibir apenas processos ativos em E/S.ls
, cp
, mv
, rm
: Operações básicas de gerenciamento de arquivos.
ls -l
(lista arquivos com detalhes de permissões).cp -r pasta_origem pasta_destino
(copia recursivamente diretórios).chmod
e chown
: Controle de permissões e propriedade.
chmod 755 arquivo.txt
(define permissões como rwxr-xr-x).chown usuario:grupo arquivo.txt
(altera o dono e o grupo do arquivo).dd
para criar uma imagem do disco e tente recuperar os dados com ferramentas como fsck
.iotop
para identificar o processo e tomar ações corretivas.Para mais detalhes sobre sistemas de arquivos e operações de E/S, consulte o material do professor Maziero:
chmod 755
e chmod 644
? Quando cada um deve ser usado?dd
é considerado poderoso, mas também perigoso?deadline scheduler
no Linux.iostat
e smartctl
para monitorar discos.Para mais detalhes sobre desafios e boas práticas em E/S, consulte:
Resumo:
Próximos Passos:
iostat
, iotop
e fio
.Responda as perguntas:
Responda as seguintes questões:
Livros:
Materiais Online:
Ferramentas: Comandos Linux para E/S e gerenciamento de discos.