CONCEPT/OS16 [OS] 멀티 프로세스, 멀티 스레드 하나의 프로세스를 동시에 쓰레드 개수만큼 병행해서 실행할 수 있다.스레드 구성 요소: 스레드 ID, 프로그램 카운터를 비롯한 레지스터 값, 스택 등 (실행에 필요한 최소한의 정보를 유지하며 실행됨.) 프로세스를 이루는 모든 스레드들은 프로세스의 자원을 "공유"하면서 실행된다. 스레드 1,2,3은 모두 똑같은 코드, 데이터, 힙 영역을 공유함. 스택 영역은 각각 독립적으로 공간을 가짐. * 리눅스 토발즈는 프로세스와 스레드를 굳이 구분할 필요가 없다고 설명함. 프로세스와 스레드는 "실행의 문맥"일 뿐이며 그냥 하나라고 보면 된다고 답변함. * 리눅스 운영체제에서는 프로세스와 스레드를 구분해서 쓰지않고 task 라는 용어를 사용함.* 요즘 운영체제에서는 CPU한테 처리해야 될 작업을 전달할 때 프로세스 단.. 2025. 3. 14. [OS] 프로세스 상태와 계층 구조, 프로세스 생성 기법 * 생성 상태 - 운영체제를 통해 이제 막 메모리에 적재되어 PCB를 할당 받은 상태 - 준비가 완료되었다면 준비 상태로 변경됨. * 준비 상태 - 당장이라도 CPU를 할당 받아 실행할 수 있지만 자신의 차례가 아니기에 기다리는 상태 - 자신의 차례가 된다면 실행 상태로 변경 (=디스패치) * 실행 상태 - CPU를 할당 받아 실행 중인 상태 - 할당된 시간 모두 사용 시(타이머 인터럽트 발생 시) 준비 상태로 변경됨. - 실행 도중 입출력장치를 사용하면 입출력 작업이 끝날 때까지 대기 상태로 변경됨. * 대기 상태 - 프로세스가 실행 도중 입출력장치를 사용하는 경우 - 입출력 작업은 CPU에 비해 느리기에 이 경우 대기 상태로 접어듬. -> 입출력 작업은 처리가 느리니까 CPU를 다른 프로세스가 .. 2025. 3. 14. [OS] 프로세스, 프로세스 제어 블록, 메모리 영역 프로그램은 실행되기 전까지는 보조기억장치에 있는 "데이터 덩어리"일 뿐이지만 보조기억장치에 저장된 프로그램을 실행하기 위해 더블클릭 등 행동을 해서 메모리에 적재하고 실행하는 순간부터 그 프로그램은 "프로세스"가 된다.= "프로세스 생성" 과정 프로세스 종류 1) 포그라운드 프로세스(foreground process): 사용자가 볼 수 있는 공간에서 실행되는 프로세스 ex) 게임, 메모장 2) 백그라운드 프로세스(background process): 사용자가 볼 수 없는 공간에서 실행되는 프로세스 2-1) 사용자와 직접 상호작용이 가능한 백그라운드 프로세스 2-2) 사용자와 상호작용하지 않고 그저 정해진 일만 수행하는 프로세스 ex) daemon, service모든 프로세스는 실행을.. 2025. 3. 14. [OS] 커널, 이중 모드, 시스템 콜 스마트폰의 기능은 다양하지만 핵심 기능이 전화, 문자이듯운영체제가 제공하는 기능은 다양하지만 가장 핵심적인 서비스가 존재한다.운영체제의 핵심 서비스를 담당하는 부분을 커널(kernel)이라고 한다.e.g. 핵심적인 서비스 = 자원에 접근하고 조작하는 기능, 프로그램이 올바르고 안전하게 실행되게 하는 기능 Q) 운영체제에는 속하는데 커널에는 속하지 않는 기능은?: 유저 인터페이스(UI)는 사용자와 컴퓨터 간의 통로일 뿐 운영체제의 핵심 기능(커널)은 아님. Q) 사용자가 실행하는 프로그램은 자원에 직접 접근할 수 있을까?: 일반적인 응용프로그램은 자원에 직접 접근할 수 없다. 운영체제는 오직 자신을 통해서만 접근하도록하여 자원을 보호한다. = 자원 접근을 대행하는 문지기 역할 self-learni.. 2025. 2. 22. [OS] 운영체제를 알아야 하는 이유 모든 프로그램은 실행을 위해 자원을 필요로 한다.운영체제는 실행할 프로그램에 필요한 자원을 할당하고 프로그램이 올바르게 실행되도록 돕는 특별한 프로그램.운영체제 덕분에 개발자는 하드웨어를 조작하는 코드를 직접 작성할 필요가 없다. 자원/시스템 자원: 프로그램 실행에 있어 마땅히 필요한 요소* 마땅히 필요한 요소: 컴퓨터의 4가지 핵심 부품 포함! Q) 운영체제를 알아야하는 이유는?: 운영체제는 프로그램을 위한 프로그램이다. 그렇기에 프로그램을 만드는 개발자는 운영체제를 알아야 한다.=> 개발자가 만드는 프로그램은 결과적으로 운영체제한테 도움을 받으면서 실행된다. 만약에 개발자가 만든 프로그램이 어떤 문제가 발생한다면 그 문제는 운영체제가 가장 먼저 알아챈다. 하드웨어와 가장 밀접하게 맞닿아 있는 .. 2025. 2. 21. [OS] 운영체제 정의, 목적, 분류 운영체제: 한정된 자원(Resource)을 효율적으로 사용할 수 있도록 관리하고 운영하게 하여 사용자에게 최대의 편리성을 제공하며, 사용자와 하드웨어 간의 인터페이스 역할을 하는 시스템 소프트웨어 처리량: 일정 시간 내에 컴퓨터 시스템이 처리할 수 있는 작업의 양 (throughput)반응시간: 사용자가 작업의 처리를 컴퓨터에 의뢰한 후 결과를 얻을 때까지 소요되는 시간 (turn-around time)사용가능성: 컴퓨터 시스템의 한정된 각종 자원을 즉시 사용할 수 있는 정도 (availability)신뢰성: 컴퓨터 시스템이 정확하게 동작하는지를 나타내는 정도 (reliability) 일괄 처리 시스템 (batch processing system): 여러 작업을 그룹으로 묶어 자동으로 처리하는 방식으로 .. 2021. 5. 17. 이전 1 2 다음