CS/운영체제
[운영체제-7] 메인 메모리 / 가상 메모리
1. 메인 메모리 메인 메모리 CPU가 직접 접근할 수 있는 메모리 프로그램이 실행될 때 프로그램이 복사되어 메모리에 적재 -> 프로세스가 됨 CPU는 PC가 지시하는대로 연산을 수행한 후 메인 메모리에 데이터를 저장하거나 필요한 데이터를 요구 기본적인 메모리 구성 각 프로세스에는 별도의 메모리 공간이 존재. 개별적인 메모리 공간을 분리하기 위해, 특정 프로세스만 접근할 수 있는 합법적인 (legal) 메모리 주소 영역을 설정, 프로세스가 합법적인 영역만을 접근하도록 하는 기능이 필요 기본 레지스터 : 가장 작은 합법적인 물리 메모리 주소 상한 레지스터 : 주어진 영역의 크기 메모리 공간의 보호 기준과 상한 레지스터 하드웨어를 통하여 유저 프로그램이 운영체제나 다른 유저의 코드나 데이터 구조를 수정하는 ..
[운영체제-6] 프로세스 동기화
1. 임계구역 문제와 그 해결안 데이터 정합성 이슈의 발생 동시에 공유 데이터에 접근한다면 데이터 불일치가 발생할 수 있음 데이터 일관성을 유지하려면 협력 프로세스 간의 순차적인 실행을 보장하는 메커니즘이 필요 임계 구역 (Critical-Section) 각 프로세스에는 임계 구역이라고 하는 코드 세그먼트가 존재 프로세스가 액세스하고, 업데이트하는 데이터, 적어도 하나의 다른 프로세스와 공유됨 하나의 프로세스가 임계구역에서 실행 중일 때, 다른 프로세스들은 해당 임계 구역에 접근할 수 없음 일반적으로 프로세스는 진입 구역/퇴출 구역, 나머지 구역으로 구성 임계 구역 문제 해결을 위한 요구 조건 상호 배제 (Mutual Exclusion) 프로세스 P가 임계 구역에서 실행될 때, 다른 어떤 프로세스도 임계..
[운영체제-5] CPU 스케줄링
1. CPU 스케줄링 기본 개념 CPU 스케줄러 메모리에 있는 프로세스들 중 실행 준비가 되어있는 ready 상태의 프로세스를 선택하고, 그 프로세스에 CPU를 할당 CPU 스케줄링 결정은 다음의 4가지 상황에서 발생 한 프로세스가 실행 상태에서 대기 상태로 전환될 때 (Running -> Waiting) 프로세스가 실행 상태에서 준비 완료 상태로 전환될 때 (Running -> Ready) 프로세스가 대기 상태에서 준비 완료 상태로 전환될 때 (Wating -> Ready) 프로세스가 종료될 때 (Exit) 디스패쳐 Context Switch 사용자 모드로 전환 프로그램을 다시 시작하기 위해 사용자 프로그램의 적절한 위치로 이동 디스패치 지연 (Latency) 하나의 프로세스를 중지하고 다른 프로세스를..
[운영체제-4] 스레드와 동시성
1. 단일 스레드와 멀티 스레드 스레드 (Thread) CPU 활용의 기본 단위 프로세스 내에서 프로그램 명령을 실행하는 기본 단위 스레드 ID, 프로그램 카운터, 레지스터 집합, 스택으로 구성 같은 프로세스에 속한 다른 스레드와 코드 데이터 섹션, open files 등의 운영체제 자원 공유 단일 스레드 프로세스 내 제어 스레드 1개 장점 자원을 공용화 하지 않으므로 공용 자원 접근 통제 Context Switch 작업 불필요 단점 다수개의 CPU 활용이 불가 멀티 스레드 프로세스 내 제어 스레드 다수 프로그램을 다수의 실행 단위로 나누어 실행 각각의 스레드가 고유의 레지스터와 스택으로 표현 장점 대응적 측면 : 일부가 차단되거나 장시간 작업 수행시에도 계속해서 실행 가능 자원 공유성 : 프로세스의 자..
[운영체제-3] 프로세스 관리
1. 프로세스의 개념, 상태 및 PCB 프로세스 (Process) 실행중인 프로그램 디스크에 저장된 수동적 파일(실행 파일)이 메모리에 적재 될 때, 프로세스가 됨 메모리 상에서의 프로세스 스택 세션 함수 호출 시 임시 데이터 저장 (ex : 함수 매개변수, 반환 주소, 지역 변수) 힙 세션 프로그램 실행 시 동적으로 할당되는 메모리 데이터 세션 전역변수 텍스트 세션 실행 코드 프로세스 상태 새로운(New, Created) 프로세스가 생성 중 실행(Running) 명령어들이 실행 중 대기(Waiting) 프로세스가 어떤 사건(입출력 완료 또는 신호의 수신 같은)이 일어나기를 기다림 준비완료(Ready) 프로세스가 처리기에 할당 되기를 기다림 종료(Terminated) 프로세스 실행이 종료 프로세스 제어 ..
[운영체제-2] 운영체제 구조
1. 운영체제 서비스 운영체제가 사용자의 편의성을 위해 제공하는 기능 유저 인터페이스 GUI (Graphic User Inteface) : 그래픽 기반 사용자 인터페이스 CLI (Command Line Interface) : 명령어 기반 사용자 인터페이스 프로그램 실행 시스템은 반드시 메모리에 프로그램을 적재하고, 실행하고, 구동 종료까지 가능하게 함 I/O 수행 실행 프로그램에 입출력이 필요할 경우 지원 파일 시스템 조작 파일 및 디렉토리 읽기/쓰기/생성/삭제 지원. 사용자 권한 관리 통신 동일하거나 다른 컴퓨터 시스템의 프로세스 사이의 통신을 가능하게 함 운영체제가 효율적인 시스템 운영을 위해 제공하는 기능 리소스 할당 다수개의 사용자 혹은 일을 동시에 처리할 때, 각각의 리소스에게 적당한 할당을 진..
[운영체제-1] 운영체제 개요
1. 컴퓨터 시스템의 기본 구성 컴퓨터 시스템의 4가지 구성요소 하드웨어 (CPU, 메모리, I/O장치) 운영체제 응용 프로그램 사용자 (사람, 기계, 컴퓨터) 2. 운영체제의 정의와 하는 일 운영체제의 목적 유저 프로그램을 구동, 유저 문제 해결을 쉽게 하기 위함 컴퓨터 시스템을 사용하기 쉽게 하기 위함 컴퓨터 하드웨어를 효율적으로 사용할 수 있게 하기 위함 운영체제의 구성 커널 + 시스템 프로그램으로 구성됨 커널 : 컴퓨터에서 항상 실행되는 하나의 프로그램 시스템 프로그램 : 모든 프로그램을 포함, 시스템 운영과 관련 있는 응용 프로그램 운영체제가 하는 일 리소스 할당의 주체 모든 리소스를 관리 자원에 대한 충돌되는 요청 사이에서 효율적이고 공정하게 사용 리소스 분배 제어 프로그램 프로그램 실행을 제..