CS(24)
-
[Operating System] 파일 시스템(File System)
파일 시스템이란? 컴퓨터에서 파일이나 자료를 쉽게 발견할 수 있도록, 유지 및 관리하는 방법이다. 저장 매체에는 수많은 파일이 있기 때문에, 이런 파일들을 관리하는 방법을 말한다. 특징 커널 영역에서 동작 파일 CRUD 기능을 원활히 수행하기 위한 목적 계층적 디렉터리 구조를 가짐 디스크 파티션 별로 하나씩 둘 수 있음 역할 파일 관리 보조 저장소 관리 파일 무결성 매커니즘 접근 방법 제공 개발 목적 하드디스크와 메인 메모리 속도차를 줄이기 위함 파일 관리 하드디스크 용량 효율적 이용 구조 메타 영역 : 데이터 영역에 기록된 파일의 이름, 위치, 크기, 시간정보, 삭제유무 등의 파일 정보 데이터 영역 : 파일의 데이터 접근 방법 1. 순차 접근(Sequential Access) 가장 간단한 접근 방법으로..
2023.11.30 -
[Operating System] 페이징과 세그먼테이션
쓰는 이유 다중 프로그래밍 시스템에 여러 프로세스를 수용하기 위해 주기억장치를 동적 분할하는 메모리 관리 작업이 필요 하기 때문 메모리 관리 기법 1. 연속 메모리 관리 프로그램 전체가 하나의 커다란 공간에 연속적으로 할당되어야 함 고정 분할 기법 : 주기억장치가 고정된 파티션으로 분할 (내부 단편화 발생) 동적 분할 기법 : 파티션들이 동적 생성되며 자신의 크기와 같은 파티션에 적재 (외부 단편화 발생) 2. 불연속 메모리 관리 프로그램의 일부가 서로 다른 주소 공간에 할당될 수 있는 기법 고정 크기 : 페이징(Paging) 가변 크기 : 세그먼테이션(Segmentation) 페이지 : 고정 사이즈의 작은 프로세스 조각 프레임 : 페이지 크기와 같은 주기억장치 메모리 조각 단편화 : 기억 장치의 빈 공..
2023.11.30 -
[Operating System] 세마포어(Semaphore)와 뮤텍스(Mutex)
공유된 자원에 여러 프로세스가 동시에 접근하면서 문제가 발생할 수 있다. 이때 공유된 자원의 데이터는 한 번에 하나의 프로세스만 접근할 수 있도록 제한을 둬야 한다. 이를 위해 나온 것이 세마포어 세마포어 멀티프로그래밍 환경에서 공유 자원에 대한 접근을 제한하는 방법 임계 구역(Critical Section) 여러 프로세스가 데이터를 공유하며 수행될 때, 각 프로세스에서 공유 데이터를 접근하는 프로그램 코드 부분 공유 데이터를 여러 프로세스가 동시에 접근할 때 잘못된 결과를 만들 수 있기 때문에, 한 프로세스가 임계 구역을 수행할 때는 다른 프로세스가 접근하지 못하도록 해야 한다. 세마포어 P, V 연산 P : 임계 구역 들어가기 전에 수행 ( 프로세스 진입 여부를 자원의 개수(S)를 통해 결정) V :..
2023.11.27 -
[Operating System] 경쟁 상태(Race Condition)
경쟁 상태란? 공유 자원에 대해 여러 프로세스가 동시에 접근할 때, 결과 값에 영향을 줄 수 있는 상태 동시 접근 시 자료의 일관성을 해치는 결과가 나타난다. Race Condition이 발생하는 경우 커널 작업을 수행하는 중에 인터럽트 발생 문제점 : 커널모드에서 데이터를 로드하여 작업을 수행하다가 인터럽트가 발생하여 같은 데이터를 조작하는 경우 해결법 : 커널모드에서 작업을 수행하는 동안, 인터럽트를 disable 시켜 CPU 제어권을 가져가지 못하도록 한다. 프로세스가 'System Call'을 하여 커널 모드로 진입하여 작업을 수행하는 도중 문맥 교환이 발생할 때 문제점 : 프로세스1이 커널모드에서 데이터를 조작하는 도중, 시간이 초과되어 CPU 제어권이 프로세스2로 넘어가 같은 데이터를 조작하는..
2023.11.27 -
[Operating System] 데드락 (DeadLock, 교착 상태)
데드락 (DeadLock, 교착 상태) 두 개 이상의 프로세스나 스레드가 서로 자원을 얻지 못해서 다음 처리를 하지 못하는 상태. 무한히 다음 자원을 기다리게 되는 상태를 말한다. 시스템적으로 한정된 자원을 여러 곳에서 사용하려고 할 때 발생한다. 데드락이 일어나는 경우 프로세스1과 2가 자원1, 2를 모두 얻어야 한다고 가정 t1 : Process1이 Resource1을 얻음 / Process2가 Resource2를 얻음 t2 : Process1은 Resource2를 기다림 / Process2는 Resource1 을 기다림 현재 서로 원하는 자원이 상대방에 할당되어 있어 두 프로세스는 무한정 wait 상태에 빠지는데 이것을 DeadLock 이라 한다. DeadLock이 주로 발생하는 경우 멀티 프로그래..
2023.11.25 -
[Operating System] CPU 스케쥴링 **
1. 스케줄링 CPU 를 잘 사용하기 위해 프로세스를 잘 배정하기 조건 : 오버헤드 ↓ / 사용률 ↑ / 기아 현상 ↓ 목표 Batch System: 가능하면 많은 일을 수행. 시간(time) 보단 처리량(throughout)이 중요 Interactive System: 빠른 응답 시간. 적은 대기 시간. Real-time System: 기한(deadline) 맞추기. 2. 선점 / 비선점 스케줄링 선점 (preemptive) : OS가 CPU의 사용권을 선점할 수 있는 경우, 강제 회수하는 경우 (처리시간 예측 어려움) 비선점 (nonpreemptive) : 프로세스 종료 or I/O 등의 이벤트가 있을 때까지 실행 보장 (처리시간 예측 용이함) 3. 프로세스 상태 선점 스케줄링 : Interrupt, ..
2023.11.23