OS 3

[OS] 면접 질문 대비

운영체제란? 시스템의 자원과 동작을 관리하는 소프트웨어 프로세스, 저장장치, 네트워킹, 사용자, 하드웨어를 관리 메모리 구조 Code : 실행할 프로그램의 코드 Data : 전역 변수, 정적 변수 할당 Stack : 지역 변수, 매개 변수 (컴파일 타임에 크기가 결정됨) Heap : 사용자의 데이터 동적 할당 (런타임에 크기가 결정됨) 프로세스, 스레드 프로세스 : 실행중인 프로그램 (= 여러개의 스레드로 구성된 실행체) 독립된 영역이므로 메모리와 CPU를 프로세스 마다 할당 받음 스레드 : 프로세스 안의 실행 단위 프로세스 안에서 메모리와 CPU를 공유해서 사용한다 CPU 스케쥴러 ready queue에 있는 프로세스에 대해 CPU 할당 받는 방법 비선점 스케쥴링 (순서를 뺏지 않음) FCFS(Fisr..

[OS] 동기화 및 Lock 관련 정리

동기화, 경쟁 조건, 임계영역 예시 : 하나의 객체를 두 개의 스레드가 접근할 때 생기는 일 경쟁 조건이 일어날 수 있는 상황을 없애기 위해 동기화를 해야하는데, 동기화를 하기 위해 임계 영역을 지정하고자 한다. 동기화 (Synchronization) 여러 프로세스/스레드를 동시에 실행해도 공유 데이터의 일관성을 유지 하는 것 경쟁 조건 (Race condition) 여러 프로세스/스레드가 동시에 같은 데이터를 조작할 때, 타이밍이나 접근 순서에 따라 결과가 달라질 수 있는 상황 임계 영역 (Critical section) 공유 데이터의 일관성을 보장하기 위해 하나의 프로세스/스레드만 진입해서 실행 가능한 영역 Critical section problem의 해결책이 되기 위한 조건 Mutual exclu..

[OS] Stack & Heap, 프로세스 & 스레드

Stack & Heap Stack 메모리 함수나 메소드가 호출될때 스택 프레임이 스택 메모리에 쌓인다 그 스택 프레임 안에 매개 변수와 지역 변수가 저장됨 Heap 메모리 모든 객체(Object)는 여기에 저장됨 참조 변수 객체의 메모리 주소값을 저장하는 변수 ex) Counter c = new Counter(); 프로세스, 스레드 프로그램 : 컴퓨터가 실행 할 수 있는 명령어의 집합 프로세스 : 컴퓨터에서 실행중인 프로그램 각각의 프로세스는 독립된 메모리 공간을 할당 받음 발전 순서 단일 프로세스 시스템 : CPU 하나에 한 개의 프로세스 동작 CPU 사용률이 좋지 않음 → 여러개 프로그램을 메모리에 올려놓고 동시에 실행! 멀티 프로그래밍 CPU 사용시간이 길어지면 다른 프로세스는 계속 대기 해야함 멀..