컴퓨터 구조, 운영체제 공부 (9)

나무에물주기·2023년 6월 11일
1
post-thumbnail

9장: 운영체제

9-1: 운영체제를 알아야 하는 이유

1. 운영체제란

운영체제(OS)는 컴퓨터에서 가장 중요한 소프트웨어로, 사용자와 하드웨어 사이의 인터페이스 역할을 한다. 간단히 말해서, 운영체제는 시스템 자원을 효율적으로 관리하며 응용 프로그램 실행을 위한 환경을 제공한다.

운영체제는 크게 '커널 영역''사용자 영역' 으로 나뉜다. '커널 영역'은 운영체제의 핵심 부분으로, 시스템 자원을 관리하고 사용자 영역에서 실행되는 응용 프로그램의 요청을 처리한다. 반면 '사용자 영역'은 사용자 인터페이스(UI) 및 응용 프로그램이 위치하는 공간이다.

응용 프로그램이 실행될 때, 운영체제는 프로그램을 메모리에 적재하고, CPU를 효율적으로 분배하여 프로그램이 원활하게 작동할 수 있도록 한다.

2. 운영체제를 알아야 하는 이유

운영체제 없이 하드웨어를 조작하는 코드를 개발자가 모두 직접 작성해야 한다면 어떨까? 이는 시간이 오래 걸릴 뿐만 아니라, 버그와 성능 문제를 초래할 수 있는 복잡한 작업이다.

예를 들어, 메모리 누수는 프로그램이 필요 이상의 메모리를 차지하여 시스템의 성능을 저하시키는 현상이다. 이는 주로 개발자가 메모리를 할당하고 해제하는 과정에서 오류를 범하였을 때 발생한다. 또한, 잘못된 주소 참조는 프로그램이 허용되지 않은 메모리 영역에 접근하려고 할 때 발생한다. 이런 문제들은 운영체제가 메모리를 관리함으로써 대부분 방지할 수 있다.


9-2: 운영체제의 큰 그림

1. 커널

커널은 운영체제의 핵심 서비스를 담당한다. 이는 하드웨어의 자원을 효율적으로 분배하고, 시스템 호출에 응답하여 사용자의 요청을 처리하는 역할을 한다. 사용자 인터페이스를 통해 사용자의 입력을 받아 이를 명령으로 변환하여 커널에 전달한다. 이 때, 커널은 명령에 따라 적절한 작업을 수행한다.

그래픽 사용자 인터페이스(GUI)나 커맨드 라인 인터페이스(CLI) 등의 다양한 인터페이스 형태를 통해 사용자와 커널 사이의 상호작용이 이루어진다. 예를 들어, 안드로이드나 iOS 같은 모바일 운영체제는 주로 GUI를, 서버나 리눅스 같은 운영체제는 CLI를 사용한다.

2. 이중 모드와 시스템 호출

컴퓨터의 자원을 보호하기 위해, 운영체제는 이중 모드라는 방식을 사용한다. 컴퓨터 시스템은 '사용자 모드''커널 모드' 두 가지 모드로 작동한다.

'사용자 모드'에서는 응용 프로그램이 실행되며, '커널 모드'에서는 OS가 실행된다. '커널 모드'는 시스템의 모든 자원에 접근할 수 있는 권한을 가지지만, '사용자 모드'는 제한된 권한만 가진다.

응용 프로그램이 시스템 자원을 사용하려면 '시스템 호출'을 통해 요청해야 한다. 시스템 호출은 소프트웨어 인터럽트의 한 형태로, 운영체제에게 특정 서비스를 요청하는 방법이다.

3. 운영체제의 핵심 서비스

운영체제는 컴퓨터의 여러 가지 자원을 관리한다. 이들 중 주요한 것들은 프로세스 관리, CPU 스케줄링, 메모리 관리, 입출력 장치 관리, 그리고 파일 시스템 관리이다.

4. 가상머신

가상머신은 실제 하드웨어 시스템을 에뮬레이트하여 다른 운영체제를 실행할 수 있는 환경을 제공한다. 가상머신은 하나의 물리적 컴퓨터 위에서 여러 운영체제를 동시에 실행할 수 있도록 해주므로, 자원을 효율적으로 활용할 수 있다.

5. 시스템 호출의 종류

시스템 호출은 응용 프로그램이 운영체제의 서비스를 요청하는 방법이다. 주요 시스템호출의 종류로는 프로세스 관리, 파일 관리, 디렉터리 관리, 파일 시스템 관리 등이 있다.

'프로세스 관리' 시스템 호출은 프로세스 생성, 종료, 스케줄링 등과 관련된 요청을 다룬다. '파일 관리' 시스템 호출은 파일 생성, 삭제, 읽기, 쓰기 등과 관련된 요청을 처리한다. '디렉터리 관리' 시스템 호출은 디렉터리 생성, 삭제, 이름 변경 등과 관련된 요청을 처리한다. 마지막으로, '파일 시스템 관리' 시스템 호출은 파일 시스템의 마운트, 언마운트 등과 관련된 요청을 처리한다.


요약

  1. '운영체제'란 시스템 자원과 응용 프로그램을 관리하는 소프트웨어로, 커널 영역과 사용자 영역으로 나뉜다.

  2. 운영체제는 하드웨어 조작 코드를 개발자가 직접 작성하는 단점을 줄여주며, 메모리 누수나 잘못된 주소 참조 등의 문제를 예방한다.

  3. '커널'은 운영체제의 핵심 서비스를 담당하며, 그래픽 유저 인터페이스(GUI)와 커맨드 라인 인터페이스(CLI) 등을 제공한다. 이는 안드로이드, iOS 등 다양한 운영체제에서 사용된다.

  4. '이중모드'는 자원 보호를 위해 사용되며, 사용자 모드와 커널 모드로 나뉜다. '시스템 호출'은 소프트웨어 인터럽트를 통해 사용자 모드에서 커널 모드로 전환하는 방법이다.

  5. '운영체제의 핵심 서비스'에는 프로세스 관리, CPU 관리, 메모리 관리, 입출력장치 관리, 파일 시스템 관리 등이 포함된다.

  6. '가상머신'은 물리적 하드웨어를 모방하여 여러 개의 독립된 작업 환경을 제공한다.

  7. '시스템 호출'에는 프로세스 관리, 파일 관리, 디렉터리 관리, 파일 시스템 관리 등이 있다. 이들은 각각 프로세스, 파일, 디렉터리, 파일 시스템의 생성, 삭제, 읽기, 쓰기 등의 요청을 처리한다.

profile
개인 공부를 정리함니다

0개의 댓글