개발자를 위한 컴퓨터 공학20 23. 스레드 스레드 thread 는 프로세스를 구성하는 실행 흐름의 단위로 하나의 프로세스는 하나 이상의 스레드를 가질 수 있다. 1. 프로세스와 스레드실행 흐름이 하나인 프로세스를 단일 스레드 프로세스라고 한다.실행 흐름이 여러 개인 프로세스를 멀티 프로세스라고 한다.- 프로세스를 이루는 여러 명령어를 동시에 실행이 가능하다.스레드의 구성 요소 > 스레드 ID, 프로그램 카운터, 레지스터 값, 스택 등 실행에 필요한 최소한의 정보cf) 프로세스를 이루는 스레드들은 그 프로세스의 자원을 공유할 수 있다 2. 멀티 프로세스와 멀티 스레드 프로세스를 fork하면 코드/데이터/힙 영역 등 모든 자원이 복제되어 저장된다.저장된 메모리 주소를 제외하면 모든 것이 동일한 프로세스 두 개가 통째로 메모리에 적재된다.fork를 .. 2024. 10. 25. 22. 프로세스 상태와 계층 구조 운영체제는 사용 중인 프로그램 즉 프로세스의 상태를 PCB에 기록하여 관리한다.또한 동시에 실행되는 각기 다른 상태의 프로세스를 유기적으로 실행하기 위해 계층적으로 관리한다.1. 프로세스 상태생성 상태- 이제 막 메모리에 적재되어 PCB를 할당받은 상태- 준비가 완료되면 준비 상태로 바뀐다준비 상태- CPU를 할당 받아 실행할 수 있지만 자신의 차례가 아니면 기다리는 상태- 자신의 차례가 된다면 실행 상태로 바뀐다실행 상태- CPU를 할당 받아 실행 중인 상태- 할당된 시간 모두 사용 시 ( 타이머 인터럽트 발생 시 ) 준비 상태로- 실행 도중 입출력장치를 사용하면 입출력 작업이 끝날 때까지 대기 상태대기 상태- 프로세스가 실행 도중 입출력장치를 사용하는 경우- 입출력 작업은 CPU에 비해 느리기에 이 .. 2024. 10. 24. 21. 프로세스 개요 실행 중인 프로그램을 프로세스라고 하며프로그램은 실행되기 전까지는 보조기억장치에 있는 데이터 덩어리일 뿐이다.1. 프로세스 직접 확인하기포그라운드 프로세스 foreground process : 사용자가 볼 수 있는 공간에서 실행되는 프로세스메모장, 웹 브라우저 등백그라운드 프로세스 background process 1) 사용자와 직접 상호작용이 가능한 백그라운드 프로세스2) 사용자와 상호작용하지 않고 정해진 일만 수행하는 프로세스데몬, 서비스2. 프로세스 제어 블록모든 프로세스는 실행을 위해 CPU가 필요하다 하지만 CPU 자원은 한정되어 있다.그래서 프로세스들은 돌아가며 한정된 시간만큼만 CPU를 이용한다. 이때 타이머 인터럽트가 발생하여 차례가 넘어간다. 빠르게 번갈아 가는 프로세스들을 관리해야 하기.. 2024. 10. 23. 20. 운영체제의 큰 그림 커널시스템 콜과 이중 모드운영체제의 서비스 종류1. 커널운영체제의 심장과 같은 역할을 하며 현존하는 프로그램 중 규모가 가장 큰 프로그램 중 하나이다.cf) 리눅스 운영체제의 소스코드는 2700만 줄이다. 운영체제의 핵심적인 기능을 담당하며 운영체제에서 커널에 속하지 않는 기능은 유저 인터페이스 정도이다.2. 이중모드와 시스템 호출운영체제는 응용 프로그램들이 자원에 접근하려 할 때 오직 자신을 통해서만 접근하도록 하여 자원을 보호한다. 이중 모드CPU가 명령어를 실행하는 모드를 크게 사용자 모드와 커널 모드로 구분하는 방식사용자 모드- 운영체제 서비스를 제공받을 수 없는 실행 모드- 커널 영역의 코드를 실행할 수 없는 실행 모드- 자원 접근 불가커널 모드- 운영체제의 서비스를 제공받을 수 있는 실행 모드.. 2024. 10. 22. 19. 운영체제를 알아야 하는 이유 1. 운영체제란실행할 프로그램에 필요한 자원을 할당하고 프로그램이 올바르게 실행되도록 돕는 특별한 프로그램 - 운영체제의 메모리 관리 - 운영체제의 CPU관리- 운영체제의 CPU관리 2. 운영체제를 알아야 하는 이유 운영체제 없이 프로그램을 개발하는 것은 매우 골치 아픈 일이다. 왜냐하면 하드웨어에 직접 접근해야 하기 때문이다.운영체제 덕분에 개발자는 하드웨어를 조작하는 코드를 직접 작성할 필요가 없다. 운영체제는 프로그램을 위한 프로그램이다. 그렇기에 프로그램을 만드는 개발자는 운영체제를 알아야 한다. 오류 메세지에 대한 깊은 이해를 바탕으로 문제해결 능력을 기를 수 있다. 2024. 10. 18. 18. 다양한 입출력방법 세 가지 입출력 방식 : 프로그램 입출력, 인터럽트 기반 입출력, DMA 입출력 1. 프로그램 입출력프로그램 속 명령어로 입출력장치를 제어하는 방법 입출력 명령어로써 장치 컨트롤러와 상호작용 메모리에 저장된 정보를 하드 디스크에 백업( = 하드 디스크에 새로운 정보 쓰기 )CPU는 하드 디스크 컨트롤러의 제어 레지스터에 쓰기 명령 내보내기하드 디스크 컨트롤러는 하드 디스크 상태 확인 > 상태 레지스터에 준비 완료 표시CPU는 상태 레지스터를 주기적으로 읽어보며 하드 디스크의 준비 여부를 확인하드 디스크가 준비되었다면 백업할 메모리의 정보를 데이터 레지스터에 쓰기프로그램 입출력 방식은 CPU가 장치 컨트롤러의 레지스터 값을 읽고 씀으로써 이루어진다.프린트 컨트롤러의 상태 레지스터를 읽어라프린터 컨트롤러의.. 2024. 10. 17. 이전 1 2 3 4 다음