운영체제

· 운영체제
파일과 디렉터리 파일 시스템(file system) - 파일과 디렉터리를 관리하는 운영체제 내의 프로그램 - 파일과 디렉터리를 다루어 주는 프로그램 파일과 디렉토리 - 보조기억장치의 데이터 덩어리 파일 - 보조기억장치에 저장된 관련 정보의 집합 - 의미 있고 관련 있는 정보를 모은 논리적 단위 - 파일을 실행하기 위한 정보 + 부가 정보(= 속성, 메타 데이터) 파일의 속성 유형: 운영체제가 인지하는 파일의 종류 -> 확장자(jpg,pdf 등)크기: 파일의 현재 크기와 허용 가능한 최대 크기 보호: 어떤 사용자가 해당 파일을 읽고, 쓰고, 실행할 수 있는지를 나타냄 생성 날짜: 파일의 생성된 날짜 마지막 접근 날짜: 파일에 마지막으로 접근한 날짜 마지막 수정 날짜: 파일이 마지막으로 수정된 날짜 생성자:..
· 운영체제
연속 메모리 할당과 가상 메모리 할당연속 메모리 할당 프로세스에 연속적인 메모리 공간을 할당  스와핑 - 현재 사용되지 않는 프로세스들을 보조기억장치의 일부 영역(스왑 영역)으로 쫒아내고(스왑 아웃) 생긴 빈 공간에 새 프로세스 적재(스왑 인) - 효율적인 메모리 관리 - 프로세스들이 요구하는 메모리 공간 크기가 실제 메모리 크기보다 크더라도, 스와핑을 이용하면 모두 실행시킬 수도 있음 - 프로세스는 메모리의 빈 공간에 할당되어야 한다. 빈 공간이 여러 개 있다면? - 최초 적합, 최적 적합, 최악 적합 최초적합(first-fit) - 운영체제가 메모리 내의 빈 공간을 순서대로 검색하다 적재할 수 있는 공간을 발견하면 그 공간에 프로세스를 배치하는 방식 - 검색 최소화, 빠른 할당 최적 적합(best-f..
· 운영체제
교착 상태교착 상태란 일어나지 않을 사건을 기다리며 진행이 멈춰 버리는 현상, 즉 잘못된 자원관리로 둘 이상의 프로세스 또는 스레드들이 아무것도 하지 않는 상태로 영원히 대기하는 상황. 한정된 자원을 둘 이상의 주체가 서로 동시에 사용하려고 기다리기 때문에 발생 교착 상태를 해결하기 위해서는 1. 교착 상태가 발생했을 때의 상황을 정확히 표현해보기 2. 교착 상태가 일어나는 근본적인 이유 이해하기 자원 할당 그래프 교착 상태 발생 조건 파악 가능 - 어떤 프로세스가 어떤 자원을 할당 받아 사용 중인지 확인 가능 - 어떤 프로세스가 어떤 자원을 기다리고 있는지 확인 가능 1. 프로세스는 원으로, 자원의 종류는 사각형으로 표현 2. 사용할 수 있는 자원의 개수는 자원 사격형 내에 점으로 표현 3. 프로세스가..
· 운영체제
동기화동기화란 동시다발적으로 실행되는 프로세스들은 서로 협력하며 영향을 주고 받는다. 이 과정에서 자원의 일관성을 보장해야 한다. (실행 문맥을 갖는 모든 대상은 동기화 대상이기 때문에 스레드 또한 동기화의 대상이다. 편의상 프로세스만 언급) 동기화의 의미 - 공동의 목적을 위해 동시에 수행되는 프로세스 e.g. 워드 프로세서 프로그램 - 맞춤법 검사 프로세스 - 입력 내용을 화면에 출력하는 프로세스 아무렇게나 마구 실행해도 괜찮을까? => No. 올바른 수행을 위해 프로세스들은 동기화되어야 한다. 동기화란 프로세스들의 수행 시기를 맞추는 것을 말한다. - 실행 순서 제어: 프로세스를 올바른 순서대로 실행하기 - 상호 배제: 동시에 접근해서는 안되는 자원에 하나의 프로세스만 접근하게 하기 실행 순서 제어..
· 운영체제
프로세스와 스레드 실행 중인 프로그램, 프로세스 프로세스 직접 확인하기 - 포그라운드 프로세스 (foreground process) 사용자가 볼 수 있는 공간에서 실행되는 프로세스(ex. 웹브라우저, 게임, 메모장 등) - 백그라운드 프로세스 (background process) 사용자가 볼 수 없는 공간에서 실행되는 프로세스 사용자와 직접 상호작용이 가능한 백그라운드 프로세스 사용자와 상호작용하지 않고 그저 정해진 일만 수행하는 프로세스 (데몬, 서비스) 프로세스 제어 블록 (PCB) - 모든 프로세스는 실행을 위해 CPU가 필요하다 - 그러나 CPU 자원은 한정되어 있다. - 프로세스들은 돌아가며 한정된 시간 만큼만 CPU 이용 - 자신의 차례에 정해진 시간만큼 CPU 이용 - 타이머 인터럽트가 발생..
· 운영체제
운영체제(Operating System, OS) 운영체제 - 모든 프로그램은 실행을 위해 자원을 필요로 한다. 자원/시스템 자원 - 프로그램 실행에 있어 마땅히 필요한 요소 - 컴퓨터의 네 가지 핵심 부품 포함 - 하드웨어만 자원이 아님. 네트워크 패킷이나 파일이 자원이 될 수 있음 - 운영체제는 실행할 프로그램에 필요한 자원을 할당하고 프로그램이 올바르게 실행되도록 돕는 특별한 프로그램 - 운영체제는 커널 영역에 적재되는 프로그램이다. 응용 프로그램(application software) - 사용자가 특정 목적을 위해 사용하는 일반적인 프로그램 운영체제 덕분에 개발자는 하드웨어를 조작하는 코드를 직접 작성할 필요가 없다. 운영체제를 알아야하는 이유 - 운영체제는 사용자를 위한 프로그램이 아니라 프로그램..