본문 바로가기

728x90

공부의 기록/Operating System

(7)
[운영 체제] 페이징과 세그멘테이션 기법 ⬛ 단편화 메모리의 공간이 여러 조각으로 나뉘는 현상으로 합쳐보면 메모리 사용이 가능하지만 나누어져 있어 사용이 불가능한 상태 ◼ 내부 단편화 (Internal Fragmentation) 메모리를 분할하여 사용할 때 분할된 단위가 프로세스가 필요한 공간보다 더 커서 사용되지 못하고 남는 메모리가 발생하는 현상 ◼ 외부 단편화 (External Fragmentation) 메모리 할당 및 해제 작업의 반복으로 메모리와 사이에 사용하지 않는 메모리가 발생하고 이러한 메모리들을 합치면 프로세스 할당하기에 충분하지만 연속적인 공간이 아니기 때문에 사용하지 못하는 현상 ⬛ 연속 메모리 할당 방식 고정 분할 기법 : 메모리를 여러 개의 고정된 크기로 분할하고 하나의 메모리에 하나의 프로세스를 실행 → 내부 단편화 동..
[운영 체제] Deadlock Process1은 Resource1을 사용 중 Process2는 Resource2를 사용 중 Process1은 Resource2를 요청하고 Process2는 Resource1을 요청 서로 원하는 자원이 상대방에게 할당되어 있기 때문에 무한정 wait 상태에 들어감 → Deadlock 상태 데드락이란 교착상태라고도 불리며 상호 배제에 의해 나타나는 문제점이다. 2개 이상의 프로세스가 발생 가능성이 없는 이벤트를 기다리는 경우 ⬛ Starvation vs deadlock Starvation은 Ready 상태에서 발생하고 운이 없어 오래 기다릴 뿐 언젠가는 자원을 할당받을 확률이 있는 상태 deadlock은 Asleep 상태에서 발생하고 오래 기다려도 절때 발생할 확률이 없는 상태 ⬛ Deadlock 발생 필..
[운영 체제] 프로세스와 관련된 System Call ⬛ 사전 지식 ◼ 커널 모드(Kernel Mode)와 사용자 모드(User Mode) 커널 모드 : 모든 자원(드라이버, 메모리, CPU)에 접근, 명령할 수 있다. 사용자 모드 : 프로그램의 자원에 함부로 접근하지 못하고 코드 작성, 프로세스 실행 등의 간단한 행동만 가능 ◼ System call ​ OS의 특정 기능을 쓸 수 있게 하는 인터페이스를 요청하는 함수 사용자 모드에서 System call함수를 이용하여 커널에 접근하고 커널 모드에서의 기능을 사용한다. ◼ PID 프로세스 식별 번호 ⬛ 프로세스 생성과 관련된 System call ◼ 프로세스의 생성 과정 부모 프로세스가 자식 프로세스를 복제 생성하여 트리 구조를 이룬다. 부모 프로세스의 주소공간 내용을 그대로 자식 프로세스의 주소 공간으로 ..
[운영 체제] 운영체제 개요 ⬛ 운영체제의 분류 ◼ 동시 사용자 수에 따라 단일 사용자(Single-user system) 다중 사용자(Multi-user system) ◼ 동시 실행 프로세스 수에 따라 단일 작업(Single-tasking system) : 시스템 내에 하나의 작업만 존재할 수 있기 때문에 하나의 프로그램 실행을 마친 뒤에 다른 프로그램을 실행할 수 있다. 다중 작업(Multi-tasking system) : 동시에 여러 작업을 수행할 수 있다. ◼ 작업 수행 방식에 따라 일괄처리 시스템(Batch processing system) 사용자의 요청 작업을 일정 시간 모아 두었다가 한번에 처리 시분할 시스템(Time-sharing system) CPU의 전체 사용시간을 나눠 여러 사용자들의 프로그램을 나눈 시간만큼 번..
[운영 체제] 문맥 교환(Context Switching) ⬛ 문맥 교환(Context Switching) 실행중인 프로세스가 다른 프로세스에게 프로세서를 넘겨주는 과정 실행중인 프로세스의 context를 저장하고, 프로세서를 넘겨줄 프로세스의 context를 복구하는 일 프로세스에게 할당된 프로세서 사용 시간이 끝나거나 입출력 등을 해야할 때, 실행 중인 프로세스보다 우선 순위가 더 높은 프로세스가 프로세서를 요청할 때 인터럽트를 발생시켜 문맥 교환이 진행된다. Context Switching은 오버헤드를 발생시킨다. ◼ Context 프로세스를 실행시키기 위해 PCB에 저장되어 있는 프로세스와 관련된 정보들 ◼ Context Saving 실행중이였던 프로세스의 Context(레지스터 값)를 자신의 PCB에 저장 ◼ Context Restoring 예전에 PC..
[운영 체제] 프로세스와 프로세스의 상태 ⬛ Process 프로그램이 메모리를 할당받으면 프로세스가 된다. → 프로세스는 실행 중인 프로그램을 의미 ⬛ Process Control Block(PCB) 프로세스가 생성되는 동시에 생성되며 각 프로세스들에 대한 정보를 저장하여 프로세스들을 관리하는 자료 구조 각 프로세스에 대한 PCB는 커널 공간에 존재한다. PCB가 관리하는 정보들 PID(Process Identification Number) : 프로세스 고유 식별 번호 스케줄링 정보 : 프로세스 우선 순위 등 프로세스 상태 : 생성, 준비, 실행, 대기, 완료 상태 메모리 관리 정보 : 프로세스의 주소 공간 등 입출력 상태 정보 : 프로세스에 할당된 입출력 장치, 파일 등에 대한 정보 등 문맥 저장 영역(context save area) : 프..
[운영 체제] 메모리란? 데이터를 저장하는 장치 ⬛ 메모리의 종류 ⬛ 레지스터 프로세서 내부에 있는 메모리로 명령을 빠르게 수행한다. 프로그램 카운터(Program Counter) : 다음에 수행될 명령어의 주소를 보관하는 레지스터 명령어 레지스터(Instruction Register) : 현재 실행중인 명령어를 보관하는 레지스터 누산기( ACCummulator) : 연산결과인 데이터를 일시적으로 저장하는 레지스터 이외에도 데이터 레지스터, 주소 레지스터, 메모리 주소 레지스터, 메모리 버퍼 레지스터가 있다. ⬛ 주기억 장치(Main Memory) CPU가 직접 접근할 수 있는 기억 장치로 프로세서가 수행할 프로그램과 데이터를 저장 CPU와 보조기억 장치와의 속도 차이로 인한 디스크 입출력 병목현상을 해소하기 위해 사용된다. ⬛..

728x90