[운영체제] 파일 시스템
·
컴퓨터 과학/운영체제
1. 파일과 디렉터리1-1. 파일파일 시스템: 보조기억장치의 정보를 파일 및 디렉터리의 형태로 저장하고 관리할 수 있도록 하는 운영체제 내부 프로그램파일 구성: 파일의 이름, 파일을 실행하기 위한 정보, 파일과 관련된 부가 정보인 속성(메타데이터)속성: 파일의 형식, 위치, 크기 등 파일과 관련된 정보가 포함되어 있음파일 디스크립터(파일 핸들): 저수준에서 파일을 식별하는 정보로, 0 이상의 정수 형태를 띄고 있음운영체제는 프로세스가 새로 파일을 열거나 생성할 때 해당 파일에 대한 파일 디스크립터를 3부터 프로세스에 할당한다.0 : 표준 입력(키보드)1 : 표준 출력(모니터)2 : 표준 에러파일을 다루는 작업은 모두 운영체제에 의해 이루어진다. 따라서 응용 프로그램은 임의로 파일을 할당받아 조작하거나 저..
[운영체제] 가상 메모리
·
컴퓨터 과학/운영체제
1. 물리 주소와 논리 주소CPU와 프로세스는 메모리의 하드웨어 상 실제 주소인 물리 주소가 아니라 프로세스마다 부여되는 0번지부터 시작되는 주소 체계인 논리 주소를 이용한다. 실제로 정보가 저장되어 있는 하드웨어 상의 메모리와 상호작용을 하기 위해서는 논리 주소와 물리 주소간의 변환이 이루어져야 한다.메모리 관리 장치(Memory Management Unit / MMU)는 CPU와 메모리 사이에 위치하며, CPU가 이해하는 논리 주소를 메모리가 이해하는 물리 주소로 변환하는 역할을 한다. 그렇다면 왜 굳이 CPU는 논리 주소 체계를 이용하는 걸까 ? 메모리에 적재되어있는 정보들이 시시각각 변하기 때문에 물리 주소를 이용하는 경우, 메모리의 정보가 바뀔 때마다 변경된 부분을 추적해서 기억해야 한다. 이는..
[운영체제] CPU 스케줄링
·
컴퓨터 과학/운영체제
용어 정리CPU 스케줄링: 운영체제가 CPU 자원을 배분하는 방법CPU 스케줄링 알고리즘: CPU 스케줄링의 절차CPU 스케줄러: CPU 스케줄링 알고리즘을 결정하고 수행하는 운영체제의 일부분CPU 스케줄링 대상: 실행의 문맥이 있다면 모두 스케줄링의 대상이다. 프로세스뿐만 아니라 스레드도 포함된다. CPU 활용률: 전체 CPU의 가동 시간 중 작업을 처리하는 시간의 비율CPU 버스트: 프로세스가 CPU를 이용하는 작업입출력 버스트: 입출력장치를 기다리는 작업선점형 스케줄링: 운영체제가 프로세스로부터 CPU 자원을 강제로 빼앗아 다른 프로세스에 할당할 수 있는 스케줄링- CPU 자원을 골고루 배분할 수 있지만, 문맥 교환 과정에서 오버헤드가 발생비선점형 스케줄링: 프로세스가 종료되거나 대기 상태에 접어들..
[운영체제] 동기화와 교착 상태
·
컴퓨터 과학/운영체제
용어 정리공유 자원: 프로세스 혹은 스레드가 공유하는 자원ex) 메모리, 파일, 전역 변수, 입출력장치임계 구역 (Critical Section): 공유 자원에 접근하는 코드 중 동시에 실행했을 때 문제가 발생할 수 있는 코드 레이스 컨디션: 프로세스 혹은 스레드가 동시에 임계 구역의 코드를 실행하여 문제가 발생하는 상황 1. 동기화동기화 조건1. 실행 순서 제어: 프로세스 및 스레드를 올바른 순서로 실행2. 상호 배제: 동시에 접근해서는 안 되는 자원에 하나의 프로세스 및 스레드만 접근 1-1. 뮤텍스 락임계 구역에 접근하고자 한다면 반드시 lock을 acquire해야 하고,임계 구역에서의 작업이 끝났다면 lock을 release 해야 한다. pthread_mutex_t mutex;void* incre..
[운영체제] 멀티프로세스와 멀티스레드
·
컴퓨터 과학/운영체제
멀티프로세스동시에 여러 프로세스가 실행되는 것 PID 값이 다르고, 프로세스별 파일과 입출력 장치 등의 자원이 독립적으로 할당되어 다른 프로세스에게 영향을 거의 끼치지 않는다.멀티프로세스 특징1. 자원을 공유하지 않는다.2. 프로세스 간 통신(IPC) 방법으로 자원을 공유할 수 있다.    - 공유 메모리    - 메시지 전달공유 메모리프로세스 간에 공유하는 메모리 영역을 토대로 데이터를 주고받는 통신 방식공유 메모리 특징1. 자신의 메모리 영역을 읽고 쓰는 것처럼 통신한다.2. 커널의 개입이 거의 없다.3. 통신 속도가 빠르다4. 레이스 컨디션으로 데이터의 일관성이 훼손될 수 있다. 메시지 전달프로세스 간에 주고받을 데이터가 커널을 거쳐 송수신되는 통신 방식메시지 전달 특징1. 레이스 컨디션, 동기화 ..
[운영체제] 프로세스의 실행 과정
·
컴퓨터 과학/운영체제
PCB(Process Control Block): 프로세스와 관련된 정보를 내포하는 구조체의 일종이다.PCB에 담긴 정보- 프로세스 ID- 실행 과정에서 사용한 레지스터 값- 프로세스 상태- CPU 스케줄링 우선순위 정보- 메모리 위치 정보- 프로세스가 사용한 파일 및 입출력장치 관련 정보 프로세스 테이블: 실행중인 PCB의 모음이다.새롭게 실행되는 프로세스가 있다면, 해당 프로세스의 PCB를 프로세스 테이블에 추가하고 필요한 자원을 할당한다. 반대로, 종료되는 프로세스가 있다면 사용 중이던 자원을 해제하고 해당 PCB도 프로세스 테이블에서 삭제한다.좀비 프로세스: 프로세스가 비정상 종료되어 프로세스 테이블에 종료된 PCB가 남아있는 상태를 뜻한다.  타이머(타임아웃) 인터럽트: 시간이 끝났음을 알리는 ..
[운영체제] 프로세스의 종류
·
컴퓨터 과학/운영체제
포그라운드 프로세스: 사용자가 보는 공간에서 사용자와 상호작용하며 실행되는 프로세스작업관리자에 들어가보면 앱이라고 표시되는 프로세스들이 포그라운드 프로세스이다.  백그라운드 프로세스: 사용자가 보지 못 하는 공간에서 실행되는 프로세스작업관리자에서 백그라운드 프로세스라고 정확히 명시되어있다.  데몬(서비스): 백그라운드 프로세스 중에서 사용자와 상호작용 없이 주어진 작업만 수행되는 프로세스항상 돌아가고 있어야하는 웹 서버에서 주로 사용된다. 대표적인 예시로 Apache 웹서버의 httpd가 데몬 프로그램이라고 하는데, 사용해보지 않아서 뭔지는 모르겠다 !추가로 작업관리자에 들어가서 서비스 목록에 표시되는 프로세스들이 데몬(서비스)에 해당한다.느낀 점지금까지 포그라운드 프로세스는 현재 실행해서 보고있는 프로..
[운영체제] 운영체제란
·
컴퓨터 과학/운영체제
운영체제더보기특별한 프로그램으로 자원 할당 및 관리, 프로세스 및 스레드 관리를 수행한다 운영체제의 핵심 기능을 담당하는 부분을 커널이라고 한다. 위에서 지칭한 "자원"은 프로그램 실행에 필요한 요소를 뜻하며, 실행에 필요한 데이터(소프트웨어) 혹은 실행에 필요한 부품(하드웨어)를 자원이라고 한다.운영체제의 대표적 기능더보기1. 자원 할당 및 관리- CPU 관리 : CPU 스케줄링- 메모리 관리 : 가상 메모리- 파일/디렉터리 관리 : 파일 시스템2. 프로세스 및 스레드 관리- 프로세스와 스레드- 동기화와 교착 상태3. 운영체제의 큰 그림- 커널- 시스템 느낀 점컴퓨터 전공 수업으로 운영체제를 듣고, 오랜만에 다시 보니까 기억이 새록새록 나네요 !그때는 시험을 위한 공부를 했기때문에 지금은 기억에 뚜렷하..