You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층
크게는 커널을 포함한 주변 시스템 유틸리티, 작게는 커널만 의미
역할 및 목적
컴퓨터 시스템의 자원을 효율적으로 관리 하기 위함 (효율성, 형평성)
사용자 및 컴퓨터 보안 유지
컴퓨터 시스템을 편리하게 사용할 수 있는 환경 제공
운영체제의 분류
동시작업 가능여부 - 단일 작업 (single tasking) [MS-DOS] / 다중 작업 (multi tasking) [UNIX, Windows]
사용자의 수 - 단일 사용자 (single user) [MS-DOS, Windows] / 다중 사용자 (multi user) [UNIX, NT server]
처리방식
1. 일괄 처리 방식 운영 체제
작업을 모아서 한꺼번에 처리한다
작업이 완전히 종료될 때까지 기다려야 한다
[Punch Card 처리 시스템]
2. 시분할 방식 운영 체제
여러 작업을 수행할 때 컴퓨터 처리 능력을 일정 시간 단위로 분할해 사용한다. 일반적인 PC 적용
일괄 처리 방식에 비해 응답 시간이 짧다
사용자의 요청에 대한 결과를 곧바로 얻을 수 있으므로 대화형 시스템이라고 부른다
[UNIX, Windows]
3. 실시간 방식 운영 체제
정해진 시간 안에 어떠한 일이 반드시 처리됨을 보장한다
시간 제약의 중요성에 따라 2가지로 분류한다
경성 실시간 시스템: 주어진 시간을 지키지 않으면 매우 위험한 일이 발생하는 시스템 [원자로 제어 시스템, 반도체 공정제어]
연성 실시간 시스템: 주어진 시간을 지키지 않으면 내용 전달이 미흡할 수는 있으나 경성 실시간 시스템처럼 치명적이지는 않은 시스템 [멀티미디어 스트리밍 시스템]
관련 용어 정리
Multitasking - 여러 프로그램이 동작함
Multiprogramming - 여러 프로그램이 메모리에 올라가 있음
Multiprocess - 여러 프로그램의 동작
Multiprocessor - 하나의 컴퓨터에 CPU가 여러 개 붙어 있음을 의미
Time sharing - CPU의 시간을 분할해 나누어 씀
운영 체제의 자원 관리 기능
자원 → 하드웨어 자원 (CPU, 메모리, 주변 장치, 입출력 장치) + 소프트웨어 자원
CPU 스케줄링
CPU는 통상적으로 컴퓨터 한 대에 하나가 장착되기 때문에 여러 프로세스들이 CPU를 효율적으로 나누어 사용할 수 있도록 관리되어야 한다. CPU 스케줄링의 목표는 CPU를 가장 효율적으로 사용하면서도 특정 프로세스가 불이익을 당하지 않도록 하는 것이다.
대표적인 스케줄링 기법으로 선입선출, 라운드 로빈, 우선순위 기법 등이 있다.
메모리 관리
메모리는 CPU가 직접 접근할 수 있는 컴퓨터 내부의 기억 장치이며, 프로그램이 CPU에서 실행되려면 해당 부분이 메모리에 올라가 있어야 한다. 이때 한정된 메모리 공간에 여러 프로그램을 수용하려면 메모리에 대한 효율적인 관리 메커니즘이 필요하다. 따라서 메모리 관리를 위해 운영 체제는 메모리의 어느 부분이 어떤 프로그램에 의해 사용되고 있는지를 파악하여 이를 유지하게 되는데, 이러한 정보는 주소를 통해 관리된다.
물리적 메모리는 관리하는 방식은 고정 분할 방식, 가변 분할 방식, 가상 메모리 방식 등이 있다.
디스크 관리
디스크의 용량도 한정적이다. 그래서 사용자가 필요로 하는 파일을 최대한 효율적이면서 많은 양의 파일을 저장해야 한다. 연속적인 공간에 저장하여 파일을 찾기 쉽게 저장할 것인지, 많은 양의 파일을 저장하기 이해서 파일을 조각 조각 잘라 여기 저기에 저장할지 판단한다.
디스크에서 파일을 읽어올 때는 디스크에 있는 헤더가 해당 파일을 찾아 읽어 온다. 이때 최소한의 움직임으로 최대한의 효율을 내기 위해 노력한다. 엘리베이터의 과정과 비슷한데, 엘리베이터가 1층에서 100층까지 가다가 도중에 15층이나 50층에 멈춰서 사람을 태울 수 있듯이, 디스크 헤더도 읽으려는 파일의 위치로 가는 도중 새로운 파일 리딩 요청이 들어오면 그 요청부터 수행한다.
입출력 관리
키보드, 마우스, 모니터 등 우리가 접하는 수많은 장치가 입출력 장치다. 이 I/O 디바이스들은 CPU에 비해 많이 느리다. 그래서 이 디바이스들과 컴퓨터가 어떠한 방식으로 정보를 주고 받는 지가 컴퓨터의 성능과 직결된다. I/O 디바이스들은 각각 I/O 디바이스 컨트롤러라는 독자적인 작은 CPU를 갖고 있으며, 인터럽트라는 요소를 중심으로 컴퓨터와 정보를 주고 받는다.
프로세스 관리
프로세스란 현재 실행 중인 프로그램, 어떤 순서로 프로그램이 운영체제에 의해서 메모리(스택, 힙, 코드, 데이터) 부분을 할당 받고, “프로세스 내에서 실행되는 여러 흐름의 단위”인 각 쓰레드의 실행으로 하나의 프로세스가 구성되게 된다. 운영체제는 프로세스 실행에 있에서 CPU 입장에서의 최소 작업 단위를 쓰레드로 잡고 Context-Switching을 수행하면서 이를 원할하게 할 수 있도록 우선 순위와 처리를 관리한다.
운영체제의 정의
컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층
크게는 커널을 포함한 주변 시스템 유틸리티, 작게는 커널만 의미
운영체제의 분류
관련 용어 정리
운영 체제의 자원 관리 기능
자원 → 하드웨어 자원 (CPU, 메모리, 주변 장치, 입출력 장치) + 소프트웨어 자원
CPU 스케줄링
CPU는 통상적으로 컴퓨터 한 대에 하나가 장착되기 때문에 여러 프로세스들이 CPU를 효율적으로 나누어 사용할 수 있도록 관리되어야 한다. CPU 스케줄링의 목표는 CPU를 가장 효율적으로 사용하면서도 특정 프로세스가 불이익을 당하지 않도록 하는 것이다.
대표적인 스케줄링 기법으로 선입선출, 라운드 로빈, 우선순위 기법 등이 있다.
메모리 관리
메모리는 CPU가 직접 접근할 수 있는 컴퓨터 내부의 기억 장치이며, 프로그램이 CPU에서 실행되려면 해당 부분이 메모리에 올라가 있어야 한다. 이때 한정된 메모리 공간에 여러 프로그램을 수용하려면 메모리에 대한 효율적인 관리 메커니즘이 필요하다. 따라서 메모리 관리를 위해 운영 체제는 메모리의 어느 부분이 어떤 프로그램에 의해 사용되고 있는지를 파악하여 이를 유지하게 되는데, 이러한 정보는 주소를 통해 관리된다.
물리적 메모리는 관리하는 방식은 고정 분할 방식, 가변 분할 방식, 가상 메모리 방식 등이 있다.
디스크 관리
디스크의 용량도 한정적이다. 그래서 사용자가 필요로 하는 파일을 최대한 효율적이면서 많은 양의 파일을 저장해야 한다. 연속적인 공간에 저장하여 파일을 찾기 쉽게 저장할 것인지, 많은 양의 파일을 저장하기 이해서 파일을 조각 조각 잘라 여기 저기에 저장할지 판단한다.
디스크에서 파일을 읽어올 때는 디스크에 있는 헤더가 해당 파일을 찾아 읽어 온다. 이때 최소한의 움직임으로 최대한의 효율을 내기 위해 노력한다. 엘리베이터의 과정과 비슷한데, 엘리베이터가 1층에서 100층까지 가다가 도중에 15층이나 50층에 멈춰서 사람을 태울 수 있듯이, 디스크 헤더도 읽으려는 파일의 위치로 가는 도중 새로운 파일 리딩 요청이 들어오면 그 요청부터 수행한다.
입출력 관리
키보드, 마우스, 모니터 등 우리가 접하는 수많은 장치가 입출력 장치다. 이 I/O 디바이스들은 CPU에 비해 많이 느리다. 그래서 이 디바이스들과 컴퓨터가 어떠한 방식으로 정보를 주고 받는 지가 컴퓨터의 성능과 직결된다. I/O 디바이스들은 각각 I/O 디바이스 컨트롤러라는 독자적인 작은 CPU를 갖고 있으며, 인터럽트라는 요소를 중심으로 컴퓨터와 정보를 주고 받는다.
프로세스 관리
프로세스란 현재 실행 중인 프로그램, 어떤 순서로 프로그램이 운영체제에 의해서 메모리(스택, 힙, 코드, 데이터) 부분을 할당 받고, “프로세스 내에서 실행되는 여러 흐름의 단위”인 각 쓰레드의 실행으로 하나의 프로세스가 구성되게 된다. 운영체제는 프로세스 실행에 있에서 CPU 입장에서의 최소 작업 단위를 쓰레드로 잡고 Context-Switching을 수행하면서 이를 원할하게 할 수 있도록 우선 순위와 처리를 관리한다.
프로세스와 스레드의 차이
The text was updated successfully, but these errors were encountered: