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.