본문 바로가기
파일 시스템 • 파일보조장치에 의미 있고 관련 있는 정보를 모아둔 논리적 단위파일은 이름, 파일 실행 정보, 메타데이터(속성)로 이루어진다 • 파일 속성파일 시스템은 파일별로 아래와 같은 속성을 유지하고 관리한다-유형 (확장자로 구분되는 파일 유형)-크기-보호-생성 날짜-마지막 접근 날짜-마지막 수정 날짜-생성자-소유자-위치 파일 연산은 운영체제에 의해 시스템 호출이 되서 아루어진다 • 디렉터리 디렉터리 = 폴더 파일을 관리하기 위해서 사용옛날옛적에는 OS에 하나의 디렉터리만 존재하는 1단계 디렉터리 구조였고1단계 디렉터리로는 파일을 관리하기 어려워서 트리 구조 디렉터리가 되었다 • 절대 경로같은 디렉터리에는 동일한 이름의 파일이 존재할 수 없지만, 서로 다른 디렉터리에서는 있을 수 있다루트 디렉터리부터 자기까지 오.. 2024. 7. 28.
스래싱 & 프레임 할당 • 스래싱 프로세스가 사용 가능한 프레임이 수가 적으면 페이지 폴트가 자주 발생할 수 밖에 없다프레임이 부족하면 페이지 폴트가 자주 발생하면서 CPU의 이용율이 떨어지고, 성능이 저해되게 된다프로세스 실행 시간보다 페이징에 더 많은 시간을 소모해서 성능이 저하되는 문제를 스래싱이라고 한다 프로세스가 필요한 최소한의 프레임 수를 보장해주지 않는게 스래싱의 근본적인 원인이다10개의 프레임이 필요한 프로세스가 5개의 프레임만 이용할 수 있으면 계속 페이지 폴트가 일어나면서스래싱이 발생할 위험이 높아진다OS는 각 프로세스를 무리없이 실행하기 위한 최소한의 프레임 수를 파악하고 할당해줘야 한다 • 정적 프레임 할당 방식 :실행 과정을 고려하지 않고 프로세스와 메모리 크기를 보고 할당하는 방식 - 균등 할당각 프로.. 2024. 7. 21.
요구 페이징 & 페이지 교체 알고리즘 • 요구 페이징프로세스를 메모리에 적재할때 모든 페이지가 아닌, 필요한 페이지만 메모리에 적재하는 방식 1. CPU가 특정 페이지 접근 명령어 실행2. 해당 페이지가 메모리에 있으면 CPU는 페이지가 적재된 프레임에 접근3. 해당 페이지가 메모리에 없으면 페이지 폴트4. 페이지 폴트 처리 루틴이 해당 페이지를 메모리에 적재하고 유효비트를 1으로 설정5. 반복 - 순수 요구 페이징메모리에 아무 페이지도 없는 경우부터 실행할 수도 있다그렇게 하면 연속적으로 페이지 폴트를 발생시키면서 페이지를 메모리에 적재하고 어느정도 적재가 된 후 부터는페이지 폴트 발생 빈도가 떨어진다이렇게 아무 페이지도 없을 때부터 요구 페이징을 하는 경우를 순수 요구 페이징이라고 한다 요구 페이징 시스템의 안정적인 작동을 위해서는 페이.. 2024. 7. 21.
메모리 할당 & 페이징 • 연속 메모리 할당프로세스 A B C D가 있을때메모리 안에서 연속적으로 A의 크기만큼 메모리 할당후 B의 크기.. C.. D.. 형태로 메모리를 할당하는 걸연속 메모리 할당이라고 한다이렇게 연속적으로 메모리를 할당할때 고려할 점과 잠재적인 문제점을 알아보면.. • 스와핑 메모리에 적재된 프로세스 중 현재 실행되지 않는 프로세스를 보조 기억 장치로 보내고, 이렇게 얻은 공간에다른 프로세스를 적재해서 실행하는 방법 쫒겨난 프로세스가 가는 보조기억장치의 영역을 스왑 영역 이라고 하고 스왑 영역으로 가는 걸 스왑 아웃,스왑 영역에서 다시 메모리로 옮겨오는 것을 스왑 인 이라고 한다 스와핑을 통해 실제 메모리 사이즈보다 요구하는 메모리가 큰 경우에도 프로세스들을 동시에 실행할 수 있다 • 메모리 할당 프로세스.. 2024. 7. 10.
교착상태 • 식사하는 철학자 문제 다섯 명의 철학자가 하나의 원탁에 앉아 식사를 한다. 각각의 철학자들 사이에는 포크가 하나씩 있고, 앞에는 접시가 있다. 접시 안에 든 요리는 포크를 두개 사용하여 먹어야만 하는 스파게티 이다. 그리고 각각의 철학자는 다른 철학자에게 말을 할 수 없으며, 번갈아가며 각자 식사하거나 생각하는 것만 가능하다. 따라서 식사를 하기 위해서는 왼쪽과 오른쪽의 인접한 철학자가 모두 식사를 하지 않고 생각하고 있어야만 한다. 또한 식사를 마치고 나면, 왼손과 오른손에 든 포크를 다른 철학자가 쓸 수 있도록 내려놓아야 한다. 이 때, 어떤 철학자도 굶지 않고 식사할 수 있도록 하는 방법은 무엇인가? 모든 철학자가 동시에 왼쪽 포크부터 집어들면 어떤 철학자도 식사를 하지 못하고 대기하는 상황이 .. 2024. 7. 10.
프로세스 동기화 동기화 : 프로세스들의 실행 순서를 맞추기, 실행 순서를 제어하기 위한 동기화와 상호 배제를 위한 동기화가 있다 • 실행 순서 제어를 위한 동기화READER, WRITER가 있을때 READER는 WRITER가 값을 갱신한 후에 읽어와야 올바른 값을 가져올 수 있다 • 상호 배제를 위한 동기화 - 생산자와 소비자 문제#include #include #include void produce();void consume();//std::queue q;int sum = 0;int main() { std::cout  상호 배제가 이루어지지 않은 환경에서는 프로세스가 동기화되지 않아 둘다 실행한 후에 초기 값이 유지되지 않는다공유 자원에 접근하는 임계구역에 여러개의 프로세스가 진입하고자 하면 한 프로세스가 작업하.. 2024. 7. 9.
CPU 스케줄링 • CPU 스케줄링 비디오 재생, 디스크 백업 작업 - 입출력 집중 프로세스연산, 컴파일, 그래픽 처리 - CPU 집중 프로세스 입출력 집중 프로세스는 실행보다 IO 상태가 더 길고 CPU 집중 프로세서는 실행 상태가 더 길다  입출력 집중 프로세스를 먼저 실행해서 입출력장치를 작동시키고 CPU집중 프로세스에 CPU를 할당하는게 효율적이다이렇게 프로세스가 상황에 맞게 CPU를 배분하기 위해 스케줄링을 한다 프로세스에 PCB에 우선순위를 명시하고 우선순위 기준으로 먼저 처리할 프로세스를 결정하게 된다 • 스케줄링 큐메모리에 적재되거나 IO하거나 CPU를 쓰려는 프로세스들을 줄세워서 스케줄링 큐로 관리하는 방법 CPU를 이용하려는 준비 큐와입출력장치를 이용하려는 대기 프로세스들이 있는 대기 큐가 있다 • 선.. 2024. 7. 9.
스레드 • 스레드 : 프로세스를 구성하는 실행의 흐름 단위난해한 설명 같지만 이거만한게 없다.. 전통적인 관점에서는 하나의 프로세스가 하나의 작업을 처리하는 단일 스레드 프로세스스레드 개념을 도입해서 한 프로세스가 여러가지 일을 동시에 처리하는 멀티 스레드 프로세스가 된다 스레드는 프로세스 내에서 각각 ID, PC, 레지스터, 스택을 가지고 실행된다프로세스 내의 스레드들은 PC 포함 레지스터, 스택을 유지하고 프로세서 자원을 공유하면서 실행된다 프로세스와 스레드를 구분하지 않고 둘다 실행의 문맥인 태스크로 보는 운영체제도 있다  • 멀티 프로세스와 멀티 스레드 같은 작업을 여러번 수행하려고 할때 FORK를 여러번 하는 것과 스레드를 여러개 만들어서 실행하는 방법이 있음 결과물은 같아도 FORK를 통해 프로세스를.. 2024. 7. 9.
프로세스 프로세스 : 보조기억장치의 프로그램을 메모리에 적재해서 실행한 것포그래운드 프로세스, 백그라운드 프로세스백그라운드 프로세스 중 사용자와 상호작용 없이 주어진 작업만 수행하는 것을 데몬이나 서비스라고 부른다작업관리자의 서비스 탭에서 확인 가능 • PCBPCB를 이용해서 번갈아가면서 수행되는 프로세스의 실행 순서를 관리하고 자원을 배분 - PCB의 구성PID레지스터 값프로세스 상태CPU 스케줄링 정보메모리 관리 정보파일, IO목록 • 컨텍스트 스위칭프로세스 A에서 프로세스 B로 실행 순서가 넘어갈때 A의 지금까지의 정보를 PCB에 백업하고실행할 프로세스 B의 PCB로 부터 정보를 가져온다 • 프로세스의 메모리 영역 크게 4가지 영역으로 나뉘어서 저장된다코드, 데이터, 힙, 스택 영역이 있다- 코드 영역실행되.. 2024. 7. 4.
운영체제 시작하기 운영체제는 프로그램에 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕는 프로그램커널 영역에서 동작하면서 시스템 자원을 관리한다 응용 프로그램이 자원에 접근하려고 할 댸 운영체제 코드를 실행해서 프로그램 대신 자원에 접근한다운영체제가 자원을 관리,보호하는 역할을 한다 이렇게 운영체제가 보호하는 역할은 이중 모드로써 구현된다  • 이중 모드- 사용자 모드 : os, 즉 커널의 코드를 실행할 수 없는 모드- 커널 모드 : os 서비스를 제공받는 모드, 자원에 접근하는 명령어를 실행 가능 사용자 영역의 응용 프로그램은 시스템 콜을 통해 커널 모드로 전환해서 os 서비스를 제공받음 • 프로세스실행 중인 프로그램, cpu는 한번에 하나의 프로세스만 실행, 프로세스를 번갈아 가면서 실행한다 - 가상 머신가상 머신.. 2024. 7. 4.