Para um computador ser capaz de compilar, interpretar e executar programas escritos em alguma linguagem de programação ele precisa administrar várias coisas como, por exemplo, a inicialização dos periféricos, a organização da memória, a gestão dos dados de entrada e saída entre o processador e os demais dispositivos do computador etc. Estas tarefas são executadas pelos sistemas operacionais (Figura 1).
Figura 1 – Logo das coleções de sistemas operacionais Windows, MacOS, Android e Linux, respectivamente.
Fonte: geekblog.
O sistema operacional de um computador faz com que a administração do hardware e as demais operações básicas necessárias para a execução dos programas sejam abstraídas do desenvolvimento de um programa, ou seja, evita que seja necessário a rescrita das instruções necessárias para a realização destas tarefas em todo programa computacional criado.
Isso significa que a maioria dos programas computacionais são executados em um ambiente controlado por um sistema operacional.
Como todo programa, um sistema operacional possui várias instruções que foram escritas por alguém e, em seguida, compiladas. O sistema operacional é um dos primeiros programas a serem executados no computador. Sendo precedido pelos programas que executam próprio sistema operacional.
Geralmente, as linguagens de programação fornecem acesso os programas de um sistema operacional. Estes programas dos sistemas operacionais são chamados de funções do sistema. Estas funções facilitam o desenvolvimento de um programa, abstraindo a sua rescrita.
O sistema operacional atua na gestão dos recursos da memória permitindo que vários programas sejam executados ao mesmo tempo, o que é chamado de escalonamento de programas. Cada um destes programas executados pelo sistema operacional é chamado de processo.
Atualmente existem diversos sistemas operacionais, sendo as coleções mais conhecidas dentre eles o Windows, MacOS, Linux e o Android. Onde cada uma destas coleções possuem diversos sistemas operacionais, com diferentes características.
Referências
- PIVA JÚNIOR, Dilermando (et al). Estrutura de dados e técnicas de programação. 1. ed. Rio de Janeiro, RJ: Campus, 2014. 399 p. ISBN: 9788535274370.
- CORMEN, Thomas H et al. Algoritmos: teoria e prática. Rio de Janeiro: Elsevier, 926 p. ISBN: 9788535236996.
- TOSCANI, Laira Vieira; VELOSO, Paulo A. S. Complexidade de algoritmos: análise, projeto e métodos. 3. ed. Porto Alegre: Bookman, 2012. 261 p. (Série livros didáticos informática UFRGS, 13) ISBN: 9788540701380.
- ASCENCIO, Ana Fernanda Gomes. Estruturas de dados: algoritmos, análise da complexidade e implementações em Java e C/C++. São Paulo: Pearson, c2010. 432 p. ISBN: 9788576052216, 978857605816.
- BRASSARD, Gilles; BRATLEY, Paul. Fundamentals of algorithmics. Englewood Cliffs: Prentice Hall, c1996. xx, 524 p. ISBN: 0133350681.