OS(운영체제) - 기초

조성현·2021년 2월 1일

OS

목록 보기
1/9

📕 Operating system (운영체제)

운영체제는 시스템 백그라운드 소프트웨어로, 주요한 목적은 컴퓨터의 자원을 관리하는 것이다. 이 자원은 물리적 자원(하드웨어)와 가상자료(데이터)를 의미한다.

초기의 컴퓨터는 어플리케이션을 수동으로 불러와야 했으며, 유저가 모든 하드웨어를 이해하고 짜고 프로그래밍을 했어야 했다. 근본적으로 프로그렘에 하드웨어 인터페이스를 얹음으로써 더 이상 밑단의 일들을 다 알지 않아도 시스템을 설계할 수 있게 되었다.

👉 OS의 간단한 주요 기능

  • 유저 인터페이스
    -> 유저와 컴퓨터간의 상호작용
    -> (GUI = 그래픽으로 화면 구성, CLI = 문자로 화면 구성)

  • 파일 관리
    -> 파일과 파일경로 구성
    -> 파일명변경, 파일정렬, 파일삭제, 파일이동, 파일복사
    -> look up table

  • 하드웨어와 주변기기 관리
    -> 컴퓨터와 연결된 기기 작동
    -> driver

  • 프로세스 관리
    -> CPU, RAM 관리
    -> 프로세스의 time sharing

  • 소프트웨어 실행
    -> OS상의 프로그램 실행

  • 인터럽트 & 에러 처리

  • 멀티 태스킹

  • 프로세스로부터의 인터럽트, 프로세스 요청 관리

  • 보안
    -> 사용자 관리
    -> 접근 권한
    -> 보안 프로그램

  • 메모리 관리
    -> 메모리 할당
    -> 메모리 추적

  • 네트워크 통신
    -> 네트워크 연결

👉 사용자 모드 & 관리자 모드

컴퓨터가 작동하면 유저 레벨의 프로세스 혹은 OS의 커널이 실행된다. 응용프로그램은 cpu를 사용자 모드(user mode)로 작동시키며, 반면에 커널은 cpu를 관리자 모드(supervisory mode)로 작동시킨다. 사용자 모드에서는 cpu가 접근할 수 있는 메모리와 실행할 수 있는 명령이 제한된다. 관리자 모드에서는 그런 제한이 없다.

👉 System call

응용 프로그램에서 OS로 보내는 하드웨어 관련 작업 요청. system call은 소프트웨어의 어셈블리어 명령으로 시작된다. OS 커널에 배열의 index를 의미하는 숫자와 요청된 작업을 가르키는 포인터로 이루어져 있다.

👉 Context switch

context는 CPU의 실행 흐름을 의미한다. context switch는 현재 cpu 사용에 대한 사용자 모드와 관리자 모드 간의 변환, 즉 유저 프로세스에서 OS kernal로의 변환 혹은 유저 프로세스 또 다른 유저 프로세스로의 변환을 의미한다.

👉 Interrupts

인터럽트는 외부에서 CPU로 보내지는 신호이다. 보통 I/O 디바이스에서 보내지며, CPU에게 현재 작업을 멈추고 적절한 OS의 다른 명령을 실행하라는 신호이다. 이를 통해 cpu가 점유되어 있어도 높은 Priority의 작업을 바로 실행 시켜 컴퓨터를 효과적으로 제어할 수 있다.

  • Hardware interupts : 하드웨어 기기에서 생성되어 CPU로 보내지는 신호이다. 보통은 데이터를 받았을 때 일어난다.(키보드의 입력, 이더넷의 데이터 입력) 혹은 전에 OS로 부터 명령받은 작업이 완료 되었을 때 완료 신호를 보낸다. (메모리간의 이동, 하드디스크 데이터 이동)
  • Software interrupts : 프로그램에서 필요한 OS system call을 요청할 때 일어나는 신호이다.
  • Traps : CPU 스스로 생성해내는 신호로 OS의 도움이 필요한 어떤 에러나 상황이 발생할 때 보낸다.

커널 자체는 다른 인터럽트를 받을 수도 있지만, interrupt handler는 인터럽트를 받아서는 안된다. interrupt context는 일반적으로 OS의 thread가 아닌 CPU의 interrupt 처리과정의 일부이기 때문이다.

profile
Jazzing👨‍💻

0개의 댓글