Starbucks Caramel Frappuccino
본문 바로가기
  • 그래 그렇게 조금씩

Computer Science/운영체제17

4. 스레드 🖥️ 스레드 🖥️ 스레드(thread)는 프로세스를 구성하는 '실행 흐름의 단위' 스레드의 구성 요소 스레드 ID, 프로그램 카운터를 비롯한 레지스터 값, 스택 등 실행에 필요한 최소한의 정보 프로세스의 스레드들은 프로세스의 자원을 공유함! 스택 영역만 각자 가지고 코드, 데이터, 힙 영역은 공유하는 것 (요즘은 프로세스 단위보다 스레드 단위로 CPU 할당, 해제 케이스가 많음) 멀티 프로세스와 멀티 스레드 동일한 작업을 수행하는 단일 스레드 프로세스 여러 개 실행 -> 멀티 프로세스 하나의 프로세스를 여러 스레드로 실행 -> 멀티 스레드 프로세스끼리는 자원을 공유하지 않지만, 스레드끼리는 같은 프로세스 내 자원을 공유하며 실행된다. 프로세스를 fork하면 코드/데이터/힙/스택 영역 등 모든 자원이 '복.. 2023. 8. 29.
3. 프로세스 상태와 계층 구조 🖥️ 프로세스 상태와 계층 구조 🖥️ 프로세스의 상태는 운영체제마다 차이가 있지만, 크게는 아래와 같다. 1. 생성 상태 - 메모리에 적재되어 PCB를 할당 받은 상태 2. 준비 상태 - CPU를 할당 받아 실행할 수 있지만,자신의 차례가 아니라 기다리는 상태 - 자신의 차례가 오면 실행 상태로 변경 (준비 상태 -> 실행 상태가 되는 것을 '디스패치'라고 함) 3. 실행 상태(running state) - CPU를 할당 받아 실행 중인 상태 - 할당된 시간을 모두 사용 시 준비 상태로 변경(타이머 인터럽트 발생 시) - 실행 도중 입출력 장치를 사용하면(입출력 인터럽트) 입출력 작업이 끝날 때까지 대기 상태로 4. 대기 상태(block state) - 프로세스가 실행 도중 입출력 장치를 사용하는 경우 .. 2023. 8. 28.
2. 프로세스 개요 🖥️ 프로세스 개요 🖥️ 포그라운드 프로세스(foreground process) - 사용자가 볼 수 있는 공간에서 실행되는 프로세스(게임, 워드 등) 백그라운드 프로세스(background process) - 사용자가 볼 수 없는 공간에서 실행되는 프로세스 1. 사용자와 직접 상호작용이 가능한 백그라운드 프로세스 2. 사용자와 상호작용하지 않고 정해진 일만 수행하는 프로세스 -> (데몬_daemon, 서비스 라고 부름) 프로세스 제어 블록 - 모든 프로세스는 실행을 위해 CPU가 필요하다. 하지만 CPU의 자원은 한정되어 있다! 위와 같이 프로세스들은 빠르게 번갈아가며 수행된다. 이를 위해 사용되는 자료구조가 '프로세스 제어 블록' (Process Control Block PCB) - 프로세스 관련 정보.. 2023. 8. 27.
1. 운영체제 intro 🖥️ 운영체제 🖥️ 운영체제는 현존 프로그램 중 규모가 가장 큰 프로그램 중 하나이다. (iOS만 봐도 용량이...) 운영체제가 제공하는 기능은 다양하지만, 가장 핵심적인 서비스는 존재한다. (커널이 담당함) ex. 자원에 접근하고 조작하는 기능, 프로그램이 올바르고 안전하게 실행되게 하는 기능.. 운영체제에는 속하지만 커널에는 속하지 않는 기능? - 유저 인터페이스(UI) GUI 혹은 커맨드라인 인터페이스는 사용자와 컴퓨터 간의 통로일 뿐 운영체제의 핵심 기능(커널)은 아님. (충격) 이중모드와 시스템 호출 유저가 실행하는 프로그램(메모장 등)은 자원(CPU, 메모리 등)에 직접 접근할 수 있을까? -> No 위험하다. 운영체제가 중간에서 해줌. 슈퍼바이저 플래그를 통해 커널모드인 경우 , 사용자 모드.. 2023. 8. 27.
0. 운영체제를 왜 공부해야 하는가 🤔 iOS 운영체제는 무엇이고, 개발자는 왜 운영체제를 알아야 하는 것일까? 컴퓨터의 부품들은 전기만 공급하면 알아서 작동하지 않는다. 모든 프로그램은 실행을 위해 자원(Resource)를 필요로 한다. - 프로그램 실행해 있어 필요한 요소 (컴퓨터의 네 가지 핵심 부품 포함_ CPU, RAM, ROM, I/O) 운영체제는? - 실행할 프로그램에 필요한 자원을 할당 - 프로그램이 올바르게 실행되도록 도와주는 특별한 프로그램 운영체제의 메모리 관리 메모리에 크게 커널 영역/ 사용자 영역이 있다면 운영체제는 커널 영역에 적재되는 프로그램이다. 사용자 영역에는 응용 프로그램(application software)_사용자가 특정 목적을 위해 사용하는 일반적인 프로그램 (엑셀, 워드, 계산기 등) 우리가 만드는 앱! 만약 .. 2023. 7. 2.