본문 바로가기
CS/OS

[OS] 운영체제 기초

by 진꿈청 2024. 7. 8.

프로세스: 컴퓨터에서 실행되는 각 작업을 운영체제에서 사용하는 정확한 용어

 

멀티 태스킹 운영체제: 여러 개의 프로세스들이 적절한 방법(문맥 교환, 스케줄링 등)으로 돌아가면서,

독립적으로 실행되도록 해주는 운영체제

 

스케줄링: 특정 시점에 여러 개의 프로세스들 중에서 실행할 대상으로 어떤 것을 선택하는 것

 

문맥교환: CPU가 현재 실행하던 프로세스를 보류하고 스케줄링에 의해 선택된 프로세스를 실행하도록 변경하는 작업

운영체제를 통한 하드웨어 접근의 장점

(응용 프로세스는 하드웨어에 직접 접근하지 못하도록하고 운영체제의 기능을 통해 처리하게 한다.)

  • 프로그래머는 컴퓨터 하드웨어에 관한 세부적인 지식이 없어도 원하는 프로그램 작성 가능
  • 컴퓨터마다 하드웨어의 구성이 다를 수 있고 이를 제어하기 위한 방법을 숙지해야 함
  • 운영체제는 표준적인 방법으로 응용 프로세스에게 통일된 하드웨어 제어 방법을 제공
  • 응용 프로세스가 오류나 잘못된 의도에 의해 하드웨어를 잘못 조작하면 시스템 전체에 영향을 주는데 이것을 방지

운영체제는 요청을 받으면 프로세스의 권한을 검사(프로세스의 PCB에는 권한 등 다양한 정보가 존재)

 

운영체제는 항상 메모리에 적재된 상태

 

운영체제를 사용하는 목적

  • 하드웨어 자원의 효율적인 활용(CPU, 메모리, 입출력 장치 등의 자원을 프로세스들 간의 공유 담당)
  • 컴퓨터 사용의 편리성 향상
  • 프로그램 개발의 편리성 향상
  • 프로그램의 이식성 향상(하드웨어 구성이 달라도 같은 운영체제인 경우)
  • 컴퓨터의 안전성 향상
  • 컴퓨터의 보안 강화

운영체제의 구성 요소

  • 프로세스 관리(생성, 삭제, 실행 중지, 실행 재개, 스케줄링, 문맥 교환)
  • 메모리 관리(전체 메모리 중에서 비어 있는 영역 및 프로세스 별로 사용 중인 메모리 영역 기록 등)
  • 파일 관리(파일을 일정한 영역에 할당하거나 할당된 영역을 회수, 파일 생성/삭제 등)
  • 입출력 장치 관리(적절한 디바이스 드라이버 루틴)
  • 시스템 보호 및 보안
  • 분산 처리
  • 명령 해석기

운영체제의 부팅 절차

  1. 전원을 켜면 ROM 프로그램이 작동
  2. 메모리 크기나 입출력 장치 등의 하드웨어 검사 실시
  3. 처음으로 발견된 디스크(부트 디스크)의 첫 번째 블록(부트 블록)에 있는 프로그램(부트 로더)을 읽음
  4. 부트 로더를 메모리의 지정된 주소에 적재 후 실행
  5. 부트 로더는 실행될 운영체제 파일을 부트 디스크에서 찾아서 메모리의 지정된 주소에 적재 후 이것을 실행 (운영체제의 파일명을 키보드로부터 읽어 들여서 사용하기도 함)
  6. 운영체제 커널은 각종 변수들 및 입출력 장치 초기화 후 명령 해석기 실행 (UNIX와 같은 멀티 유저 시스템의 경우 명령 해석기 대신 로그인 절차를 담당하는 프로세스를 여러 개 생성하여 실행시키는데, 이 프로세스는 사용자의 식별자와 패스워드를 읽어 들여 확인 절차를 거친 후 명령 해석기 프로세스로 전환 - 리눅스의 /login 프로세스 라고 생각하면 됨)
  7. 명령 해석기는 프롬프트 출력 후, 사용자로부터 명령을 읽어 들임
  8. 그 후, 운영체제 커널에 이 명령에 해당하는 프로그램 파일로 새로운 프로세스를 생성 및 실행 요청

 

 

커널

  • 넓은 의미의 운영체제에 포함되어 있음
  • 커널은 좁은 의미의 운영체제
  • 커널은 전원을 끌 때까지 메모리에 상주하면서 언제든지 실행 가능 상태로 유지
  • 일반적으로 커널 부분은 디스크에 파일 형태로 존재
  • 부트 로더가 이것을 찾아서 메모리의 지정된 주소 영역에 적재

'CS > OS' 카테고리의 다른 글

[OS] CPU 스케줄링  (0) 2024.07.16
[OS] 스레드&동시성  (2) 2024.07.14
[OS] 프로세스  (0) 2024.07.08