본문 바로가기

Computer Science/운영체제15

[OS] fork()와 exec() (fork()와 exec() 비교, exit()과 abort() 비교, wait()) 목차 fork() 함수 exec() 함수 fork()와 exec() 비교 wait() 함수 exit() 함수와 abort() 함수 1. fork() 함수 fork() 함수는 호출한 부모 프로세스 데이터를 모두 복사해 새로운 프로세스를 생성하는 시스템 콜이다. 실행 중인 프로세스에 fork() 함수가 동작하게 된다면, 프로세스의 메모리를 모두 복사해 자식 프로세스를 생성한다. 자식 프로세스는 실행 중이던 부모 프로세스의 PC(Program Counter)부터 다음 명령을 수행한다. (특징) 새로운 프로세스가 생성되어 새로운 메모리 공간이 할당된다. 실행 중이던 프로세스의 메모리를 복제한다. 프로세스 종료 시 PID 값이 리턴되는데, 부모 프로세스 PID는 자식 프로세스의 PID(양수)를, 자식 프로세스의 .. 2024. 2. 7.
[OS] 파일과 파일 시스템 (파일 접근 방식, 파일 할당 방식, 운영체제 별 파일 시스템, 디스크 파편화 관리) 목차 파일이란? 파일 시스템이란? 디렉터리란? 파티션이란? 파일 접근 방식 순차 접근 (Sequential Access) 직접 접근 (Random Access) 색인 접근 (Index Access) 파일 할당 방식 연속 할당 (Contigious Allocation) 연결리스트 할당 (LinkedList Allocation) 인덱스 할당 (Indexed Allocation) 운영체제 별 파일 시스템 윈도우 : FAT, NTFS 리눅스 : EXT2, EXT3, EXT4 디스크 파편화 관리 1. 파일이란? 파일은 사용자 관점에서 데이터에 대한 논리적 저장 단위로, 관련된 정보들을 저장하기 위해 데이터 집합에 이름을 붙인 것이다. 블록이나 레코드 단위로 HDD 혹은 SSD와 같은 비휘발성 보조기억장치에 저장된.. 2024. 2. 5.
[OS] 가상 메모리란? (Demand Paging, Page Fault, 페이지 교체 알고리즘, 스레싱 문제와 해결 방법) 목차 가상 메모리란? 가상 메모리 구현 방법 : Demand Paging 페이지 교체 알고리즘 FIFO 알고리즘 Optimal 알고리즘 LRU 알고리즘 LFU 알고리즘 Second-Change 알고리즘 (= Clock 알고리즘) 스레싱이란? 스레싱 해결 방법 1. 가상 메모리란? 가상 메모리는 메모리보다 크기가 큰 프로세스를 실행시킬 수 있기 위해 나온 기술이다. 프로세스를 실행할 때 실행에 필요한 코드나 데이터만 메모리에 로드하고, 나머지는 디스크에 저장해 두어 작업한다. 이로써 프로그램 전체가 메모리에 로드되어 수행하는 것처럼 만들고, 메모리가 훨씬 더 큰 용량을 가진 것처럼 보이게 한다. 2. Demand Paging 가상 메모리 구현 방법 중 하나인 Demand Paging은 실행에 필요한 페이지.. 2024. 2. 2.
[OS] 메모리 할당 방식이란? (연속적/비연속적 할당 방식, 조각 모음, 페이징과 세그먼트, TLB, 물리적 주소 변환 과정) 목차 메모리 할당 방식이란? 연속적 할당 방식 고정 분할 방식 가변 분할 방식 조각 모음, 외부 단편화 해결 방법 비연속적 할당 방식 페이징 세그먼트 페이징 + 세그먼트 : Paged Segment TLB (Translation Look-aside Buffer) 물리적 주소 변환 과정 연속적 할당 방식과 비연속적 할당 방식 비교 가변 분할 방식과 고정 분할 방식 비교 페이징과 세그먼트 비교 1. 메모리 할당 방식이란? 메모리는 물리적 주소, 논리적 주소를 갖고 있다. 프로세스가 메모리에 올라간 실제 주소를 물리적 주소, 프로세스 내에서 사용되는 주소를 논리적 주소라고 칭하는데, 프로세스가 동작하면서 필요한 데이터 및 코드의 주소에 접근하기 위해서 논리적 주소를 물리적 주소로 변환하는 작업이 필요하다. 주.. 2024. 2. 2.
[OS] 메모리란? (메모리 주소 종류, 주소 바인딩, MMU의 기능과 역할, 메모리 할당 방식) 목차 메모리란? 메모리 주소 종류 물리적 주소 논리적 주소 논리적 주소를 사용하는 이유 메모리 주소 바인딩 컴파일 시점 주소 바인딩 로드 시점 주소 바인딩 런타임 시점 주소 바인딩 MMU의 기능과 역할 (+ MMU가 잘못된 메모리 주소를 참조하려고 한다면?) 메모리 할당 방식 연속적 할당 비연속적 할당 1. 메모리란? CPU에 의해 작업이 처리되기 위해서는 프로그램이 CPU가 접근할 수 있는 위치에 존재해야 한다. 프로그램을 실행하기 위해서는 디스크에 저장되어 있던 프로그램을 메모리에 적재해야 한다는 말을 들어본 적이 있을 것이다. 이것은 쉽게 설명해 공부를 할 때 책상에서 책을 펼칠 수 있는 공간으로 비유할 수 있으며, 책상의 공간이 한정되어 있기 때문에 나중에 공부할 책은 책장에 꽂아두는 상태로 비유.. 2024. 2. 2.
[OS] 교착 상태와 기아 상태란? (데드락 발생 조건과 해결 방법, 기아상태 해결 방법, 현대 컴퓨터는 데드락을 어떻게 처리할까?) 목차 교착 상태이란? 교착 상태 발생 조건 교착 상태 해결 방법 현대 컴퓨터는 교착 상태를 어떻게 처리할까? 기아 상태란? 기아 상태 해결 방법 1. 교착 상태(데드락, Deadlock)이란? 공유 자원에 대한 동기화 문제를 해결하기 위해 성립해야 하는 세 가지 조건이 있다. 공유 자원을 사용하고 있는 프로세스가 존재한다면 다른 프로세스는 임계영역에 진입할 수 없는 상호 배제, 공유 자원을 사용하는 프로세스가 없다면 임계 영역에 진입할 수 있는 진행, 무한 대기를 발생시키지 않게 하기 위해 임계 영역 진입 횟수에 제한을 두는 한정 대기를 충족해야 한다. 하지만 위의 조건을 충족해 동기화 문제를 해결했을 때 발생하는 문제점이 있는데, 그것이 교착 상태이다. 교착 상태는 자원을 점유하고 있는 2개 이상의 프.. 2024. 1. 30.