운영체제

운영체제

*이 내용은 인프런 그림으로 쉽게 배우는 운영체제를 수강하며 정리한 내용입니다.

 

운영 체제의 구조

운영 체제의 핵심은 커널이야.

커널은 프로세스와 메모리, 저장장치를 관리하는 핵심적인 기능을 담당해.

사용자는 운영 체제의 커널에 직접 접근할 수 없고, 인터페이스를 통해서 접근할 수 있어.

인터페이스는 GUI, CLI로 나눌 수 있어. 이 두가지는 텍스트냐, 이미지냐의 차이이지 커널에 접근하기 위한 목적은 같아!

  • GUI -> 이미지로 커널과 상호작용 ( ex. mac, window )

  • CLI -> 텍스트로 커널과 상호작용 ( ex. 리눅스 )

커널은 사용자로부터 자신을 보호하기 위한 시스템 콜이라는 인터페이스를 갖고있어.

시스템 콜 없이 애플리케이션이 하드디스크에 접근하게되면 중요한 정보를 덮어쓸 수 있어...

시스템 콜을 이용하면 자동으로 빈 공간에 저장하도록 해줘 ( 복잡하네😅 )

 

사용자, 애플리케이션커널과의 인터페이스로 시스템 콜을 사용한다고 했는데,

하드웨어커널과의 인터페이스로는 드라이버를 사용해...!

 

컴퓨터 하드웨어와 구조

대부분이 폰 노이만 구조를 하고있어.

CPU와 메모리를 두는 구조로, 배선을 바꾸는 대신 소프트웨어만 바꿔주면 되므로 편해졌어!

CPU와 메모리를 연결하는 버스를 통해 명령어를 읽고, 데이터를 읽고 써.

 

컴퓨터 하드웨어에는 메인보드가 있어. 메인보드는 다른 하드웨어를 연결하는 장치야. 마우스 키보드 등등...

장치 간에 데이터를 전송하는 건 메인보드의 버스가 담당해.

CPU와 메모리를 메인보드에 꽂아줘. ( 폰 노이만 구조니까~ )

하드디스크 연결 단자에는 하드디스크를 꽂아주면 돼. 마찬가지로 그래픽카드 연결 단자에는 그래픽 카드를 꽂아줘.

출력 단자의 모니터 선을 꽂으면 모니터가 작동하게 돼.

 

CPU 구조

Central Processing Unit의 약자로, 중앙 처리 장치라고 불려.

  • 산술논리 연산장치 ( Arithmetic and Logic Unit, ALU ) : 데이터 연산 담당

  • 제어 장치 ( Control Unit ) : 모든 장치들의 동작을 지시하고 제어하는 장치

  • 레지스터 : 계산을 위해 임시로 보관하는 장치

 

메모리 종류

  • RAM ( Random Access Memory )

    • 랜덤으로 데이터를 읽어도 저장된 위치와 상관없이 읽는 속도가 같아.

    • 전력이 끊기면 데이터를 읽어버리기 때문에 메인 메모리로 사용돼.

  • ROM ( Read Only Memory )

    • 전력이 끊겨도 데이터를 보관할 수 있지만, 데이터를 한번 쓰면 수정할 수 없어.

    • 컴퓨터의 부팅과 관련된 바이오스를 저장하는데 주로 사용돼.

 

컴퓨터의 부팅과정

  1. 컴퓨터의 전원을 누른다.

  2. ROM에 저장된 바이오스가 실행된다. ( 바이오스: 전원, CPU, 메모리, 키보드, 하드디스크 등 주요 하드웨어에 이상이 없는지 확인해. )

  3. 이상이 없다면 하드디스크에 있는 마스터 부트 레코드에 저장된 부트로더를 메모리로 가져와서 바이오스가 실행한다.

  4. 만약 윈도우즈 운영체제와 리눅스 운영체제가 둘 다 설치되어있는 컴퓨터라면 어떤 운영체제를 실행할지 선택하는 화면이 나온다.

  5. 운영 체제를 메모리로 불러오고 모니터에 바탕화면이 보이게 된다.

  6. 이제부터 실행되는 모든 응용 프로그램은 메모리에 올라와서 운영체제가 관리한다.

 

인터럽트

CPU가 입출력 장치에 데이터를 읽거나 쓰려고 하는 상황을 생각해보자.

CPU는 입출력 작업이 들어오면 입출력 관리자에게 입출력 명령을 내려.

CPU 관점에서는 입출력 명령이 언제 완료될지 알 수 없기 때문에 주기적으로 확인해줘야해!!

이러한 방식을 폴링(Polling) 방식이라고 해

폴링 방식의 단점은 주기적으로 CPU가 확인해줘야하니 성능이 좋지 않다는 점이야.

 

인터럽트는 폴링 방식의 단점을 해결한 방식이야.

CPU가 입출력 관리자에게 입출력 명령을 내리고 자기는 다른 일을 해.

입출력 관리자는 입출력 명령이 완료되었을 때 CPU에게 신호를 주고, CPU는 그 신호를 받아서 ISR(Interrupt Service Routine)을 실행시켜 작업을 완료해.

ISR은 특정 인터럽트가 들어오면 그 인터럽트를 처리하는 방식이야.

인터럽트는 비동기적으로 작동하기 때문에 성능에 이점이 있어.

  • 하드웨어 인터럽트 ( ex. 입출력 )

  • 소프트웨어 인터럽트 ( ex. 유효하지 않은 메모리 접근 )

 


참조 : 그림으로 쉽게 배우는 운영체제

 

  • 1주차 회고

    • 칭찬하고 싶은 점 : 기한을 지켰다 😅

    • 아쉬웠던 점 : 권장 커리큘럼을 지키지 못했다.

    • 다음 주에는 권장 커리큘럼을 지켜 수강하는 것이 목표입니다!

채널톡 아이콘