⭐️ Computer Science/운영체제

    [운영체제] CPU 스케줄링, 프로세스 상태, CPU 스케줄링 기법

    [운영체제] CPU 스케줄링, 프로세스 상태, CPU 스케줄링 기법

    CPU 스케줄링 준비 상태의 프로세스들이 순서에 따라 CPU를 할당 받으면 실행 상태가 되는데 이때 CPU를 누구한테 먼저 줄 것인지 순서를 정하는 것을 CPU 스케줄링이라고 한다. 다양한 기준과 방식들이 있겠지? 여기서 조금 하나 먼저 짚고 들어갈 것은 다중 프로그래밍은 하나의 메모리에 올라가 있는 여러 프로세스에게 CPU가 할당되는 거니까, 어떤 하나의 프로세스가 완전히 끝나버리고 -> 그 다음 프로세스가 처리되는 게 아니라는 점이다. (FIFO기법상 그럴수도..?) 그렇다면, 여기서 CPU를 스케줄링의 단위는 바로 스레드인 것을 알 수 있다. 프로세스는 CPU 할당 단위이고, 프로세스보다 더 작은 단위인 스레드가 CPU 스케줄링 단위인 것이다. 결과적으로, 스레드가 CPU를 할당 받는데 중요한 단위..

    [운영체제] 운영체제에 들어가기 앞서

    운영체제의 역할은 사용자 인터페이스와 자원관리를 위한 것이다. 일괄처리는 다수개의 프로그램을 읽어 저장해 놓되, 한 번에 한 개씩의 프로그램을 실행시켜 주는 방식이다. 왜 다수개의 프로그램을 읽어서 저장해두고, 하나씩 처리하는 것이냐? 면접을 예시로 들면, 여러 명의 면접자를 대기시켜두고, 순서대로 면접 보는 것과 같은 맥락이다. 한 명 끝나고 또 오라고 하고 기다리는 것보다는 여러명을 대기시켜두는 게 소모되는 시간을 줄이고, 스무스하게 연결짓는 거다. 이게 운체에서는 job-to-job의 transition을 스무스하게 한다라고 한다. 그래서 요즘은 일괄처리를 하되, 다중 프로그래밍을 통해서 한 번에 하나씩이 아닌, 한 번에 여러개의 일을 동시에 처리하는 Batch로 발전했다. 운영체제는 다중 프로그래..

    [운영체제] 질문1. 프로세스와 스레드

    [운영체제] 질문1. 프로세스와 스레드

    프로세스 및 스레드 관련 질문 프로세스와 스레드의 차이는 무엇인가요? 프로세스는 실행 중인 프로그램으로 작업의 흐름 단위를 말하고, 스레드는 프로세스 내에서 실행되는 흐름 단위를 말한다. 프로세스 내에 작업의 단위를 좀 더 작게 나눈 것이 스레드이다. 각각의 프로세스는 메모리에 올라가 서로 자원과 주소공간을 공유하지 않지만, 스레드는 프로세스 내의 stack을 제외한 메모리 영역을 다른 스레드와 공유한다. 스택을 스레드마다 독립적으로 할당하는 이유는 무엇인가요? (= 스레드가 스택만 공유하지 않는 이유는 무엇인가요?) 스택은 함수에 필요한 매개변수, 반환값, 함수 내에 선언되는 변수가 저장되는 공간이다. 즉, 함수와 관련된 메모리 공간이다. 우리가 흔히 함수는 동작을 실행하기 위해 호출하는데, 스택 영역..

    [운영체제] 3. 프로그램과 프로세스, 스레드, PCB, Context Switching

    [운영체제] 3. 프로그램과 프로세스, 스레드, PCB, Context Switching

    프로그램과 프로세스, 스레드 면접에서 중요하단다. 기초적인 것! 우리가 맥북으로 음악도 듣고, 블로그도 쓰고, 유튜브도 켜고, 개발도 하고 동시에 여러개의 작업을 할 수 있는 이유 예전에는 게임을 다운 받는 동안에 화면이 멈추고 다 다운 받고서야 움직일 수 있는 그런 환경이었음 운영체제는 프로세스에 적절한 메모리를 할당한다. 운영체제 = 관리자 CPU = 일꾼 메모리 = 공장부지 프로세스 = 일감 관리자는 해당 일을 공장부지 어느 곳에 하면 좋을지 할당하는 것임 그러면 장난감공장의 곰인형담당일꾼은 곰인형일을 하고, 세부적으로 곰인형의 눈을 붙이는 일 / 곰인형의 팔을 붙이는 일 .. 이렇게 하는 것임 - 프로세스는 컴퓨터에서 실행 중인 프로그램, 프로그램으로부터 인스턴스화된 것, 메모리에 올라가 있는 프..

    [운영체제] 2. 메모리계층, 가상메모리, 스와핑, 페이지폴트, 스레싱

    [운영체제] 2. 메모리계층, 가상메모리, 스와핑, 페이지폴트, 스레싱

    메모리 계층 레지스터, 캐시, 메모리, 저장장치 위로 갈수록 속도가 빠르지만, 단위 공간 당 가격이 비싸고 용량이 적다. 아래로 갈수록 속도가 느리고, 단위 공간 당 가격이 싸고 용량이 많다. 휘발성 : 전원이 나가면 데이터가 사라진다. 비휘발성 : 전원이 나가도 데이터가 사라지지 않는다. CPU는 바이트 단위로 접근 가능한 매체이어야 접근이 가능하다. Primary : CPU가 직접 접근해서 실행 가능한 매체(Executable) - 바이트 단위 하드디스크의 단위는 섹터 단위로 접근할 수 있어 CPU가 접근하지 못한다. Secondary : CPU가 직접 접근하지 못하는 매체 - 섹터 단위 레지스터 : 휘발성, 작은 메모리, 속도는 가장 빠름, 용량은 가장 적음 캐시메모리 : L1, L2, 캐시 / L..

    [운영체제] 1. 운영체제와 컴퓨터, 인터럽트, 시스템콜과 modebit

    [운영체제] 1. 운영체제와 컴퓨터, 인터럽트, 시스템콜과 modebit

    운영체제의 4가지 역할 후리장난감공장이 있다. 관리자 이름은 운영체제고, 일꾼은 CPU, 보조일꾼은 DMA 컨트롤러다. 공장부지는 메모리라고 한다. 일꾼의 뇌는 제어장치이며, 일꾼은 계산할 때 산술논리연산장치로 한다. 1. CPU의 스케줄링과 프로세스 관리 cpu의 소유권을 어떤 프로세스에게 할당할 거고, 프로세스의 생성과 삭제, 자원 할당과 반환을 관리한다. ex. 넷플릭스 실행 버튼을 눌렀을 때, 넷플릭스가 실행되는 그 과정 속에서 cpu 소유권을 넷플릭스에게 넘겨주는 관리자가 운영체제 - 먼저 들어왔다고 먼저 할당해줄까? 아니겠지? 2. 메모리 관리 한정된 메모리를 어떤 프로세스에 얼만큼 할당하는가 / 효율적인 관리 메모리라고 할 때, 우리는 보통 주메모리 RAM을 말하는 것인데 이 한정된 메모리를..

    [운영체제] 28. Disk Management & Scheduling 2

    [운영체제] 28. Disk Management & Scheduling 2

    28. Disk Management & Scheduling 2 Swap-Space Management 보조 기억 장치를 사용 하는 두 가지 이유 1. 메모리 제약적인 것 때문 메모리가 휘발성의 성질을 가지고 있기 때문에 파일 시스템처럼 연속적으로 데이터를 유지해야 하는 아이는 비휘발성의 디스크를 사용해야 한다. 2. 메모리 공간이 한정적이기 때문에 멀티 프로그래밍 사용의 증가 - 동시에 메모리에 프로그램을 올려야 하는데 메모리 공간이 한정적이다. 따라서 메모리의 연장공간으로 사용해야 하니까 = 즉, swap area 용도로 사용하기 위해서 디스크를 사용하는 것이다. 하드 디스크 쪽에서 swap space는 어떻게 관리되어야 할까? 물리적인 디스크를 파티셔닝을 통해 로지컬 디스크를 맏늘 수 있고 운영체제가..

    [운영체제] 27. Disk Management & Scheduling 1

    [운영체제] 27. Disk Management & Scheduling 1

    27. Disk Management & Scheduling 1 : 디스크 관리와 스케줄링 Disk Management 디스크를 관리하는 최소의 단위는 섹터이다. 디스크는 원판으로 되어있고, 동심원 각각은 조각조각으로 나뉘어져서 관리가 되고 있는데 그 조각이 섹터라고 한다. 그래서 디스크의 최소 단위는 섹터(sector)이다. 디스크 섹터는 디스크 내부에서 관리하는 단위고, 섹터에서 데이터를 읽고 쓰라는 건 디스크 컨트롤러가 관리하는 것이다. 디스크 외부에서 디스크를 접근하는 단위는 로지컬 블럭(logical block) 단위로 디스크를 바라본다. 컴퓨터 호스트에서는 디스크를 접근할 때 로지컬 블럭 단위로 접근하는 것이다. 로지컬 블럭은 1차원 배열로 구성되어 있다. 그래서 컴퓨터 호스트에서 어떤 디스크에..

    [운영체제] 26. File System Implementations 2

    [운영체제] 26. File System Implementations 2

    26. File System Implementations 2 Page Cache 당장 필요하지 않은 페이지 프레임에 당장 필요한 내용을 메모리에 올려두고, 필요하지 않은 건 쫓아내는 것 페이징 시스템에서 사용하는 페이지 프레임들을 Page Cache라고 부른다. Buffer Cache 버퍼 캐시는 운영체제가 디스크에서 읽어온 내용을 자신의 버퍼 캐시 영역에 저장해두고 사용자의 프로그램에 카피해서 넘겨주기 때문에 다음 번에 동일 데이터에 read write 시스템 콜이 오면 버퍼 캐시 영역에 있는 데이터를 가져다 주는 것이다. 페이지 캐시는 swap area에 있는가 page cache에 올라와 있는가 버퍼 캐시는 파일 시스템 스토리지에 저장되어 있는가, 버퍼 캐시에 올라와 있는가 단위 페이지 캐시의 단위..

    [운영체제] 25. File System Implementations 1

    [운영체제] 25. File System Implementations 1

    25. File System Implementations 1 (반효경) 순차적인 접근, 직접접근 매체에 따라서 테이프는 순차접근만 가능하다. 하드디스크, 플래시메모리, CD는 건너뛸 수 있기에 직접접근이 가능하다. 직접접근이 가능한 매체여도 데이터를 어떻게 관리하느냐에 따라서 순차접근만 가능한 경우일 수도 있는데 오늘은 그 이야기를 할 거다. 디스크에 어떻게 파일 데이터를 할당할 것인지! 디스크에 파일을 어떻게 저장할 건지! 디스크 내부에서는 섹터 단위로 데이터를 저장하고 있다. 임의의 크기의 파일을 블록 단위로 저장하고 있다. 연속 할당 Contiguous Allocation 하나의 파일이 디스크 상에 연속해서 저장되는 방식 블록 2개는 0, 1번을 차지하고, 블록 6개다 -> 19번 ~ 24번까지 차..