본문 바로가기

컴퓨터공학/운영체제5

[운영체제] 04. memory -a 모든 프로그래머가 원하는 메모리는?크고, 빠르며, 자신이 혼자 사용할 수 있는 비휘발성(nonvolatile) 메모리 메모리 계층 구조(momory hierarchy)캐시 메모리, 메인 메모리, 디스크 스토리지 등의 서로 다른 특성을 갖는 메모리들을 층 구조로 구성하는 것 캐시- megabyte, 빠르고 휘발성이며 가격이 비싸다.메인메모리- gigabyte, 중간 속도이고 휘발성이며 중간 정도의 가격을 가진다.디스크 스토리지- terabyte, 느리고 비휘발성이며 가격이 싸다. (DVD, USB 등의 모바일 스토리지도 포함됨) 메모리 관리자(memory manager)가 메모리 계층 구조 관리를 담당함-현재 사용 중인 메모리 부분을 파악하고, 프로세스들이 메모리를 필요로 하면 할당해 주고, 더 이상 사용.. 2024. 11. 7.
[운영체제] 02. scheduling 여러 개의 프로세스가 대기 상태에 있을 때, 다음에 실행할 프로세스를 스케줄러가 선택하는데이때 스케줄러의 알고리즘을 스케줄링(scheduling)이라고 한다.CPU 사용 시간에 따른 스케줄링 알고리즘이 필요하다. process behavior(a) CPU-bound process: CPU burst가 길다(b) I/0-bound process: CPU burst가 짧다. I/0를 기다리는 시간이 빈번하게 발생 When to schedule새로운 프로세스를 생성할 때프로세스를 종료할 때프로세스가 블록 상태가 되어 대기해야 할 때I/O interrupt 가 발생했을 때 clock interrupt를 다루는 방식에 따라 두 가지로 나뉨nonpreemptive(비선점): 자발적으로 CPU를 반환할 때까지 계속 .. 2024. 10. 28.
[운영체제] 02. ipc InterProcess Communication (프로세스간 통신)three issues어떻게 프로세스가 다른 프로세스에게 정보를 전달하는가둘 또는 그 이상의 프로세스가 서로 상대방을 방해하지 않도록 하는 것종속성(dependency)이 존재할 때 적절한 순서를 정하는 것 ⭐️Race conditions (경쟁 조건)example) Spooler directory(out: 프린트할 다음 파일, in: 디렉토리에서 다음 번 빈 슬롯) 상황: 거의 동시에 프로세스 A와 B가 프린트하기 위해 이름을 등록하려고 함프로세스 A가 in을 읽고 next_free_slot에 7을 적음interrupt 가 발생하여 프로세스 B 역시 in을 읽고 next_free_slot에 7을 저장함프로세스 B는 자신의 파일 이름을 슬.. 2024. 10. 25.
[운영체제] 02. process process는 실행 중인 프로그램을 말함CPU는 다수의 process를 다중 프로그래밍(multi programming)함.(병렬 처리) 각각의 프로세스는 address space(core image), process table entry로 이루어짐 ⭐️process staterunning: using the CPU/ 명령어를 수행하며 CPU를 사용 중 ready: runnable, temporarily stopped to let another process run/ CPU의 사용을 대기 중blocked: unable to run/ CPU를 사용할 수 없는 상태운영체제의 가장 하위계층은 스케줄러, 그 위에 다수의 프로세스들 존재 address space of processtext: codedata: v.. 2024. 10. 23.
[운영체제] 01. systemcall ✔️CPU에는 user mode와 kernel mode가 있음user mode에서는 일부 명령어만 처리가능, kernel mode에선 모든 명령어가 처리가능하고 하드웨어의 모든 feature를 사용 가능 system call이 일어나면 TRAP 명령을 이용하여 user mode에서 kernel mode로 전환하여 operating system이 동작→ 작업이 끝나면 다시 user mode로 example) read system callcount=read(fd, buffer, nbytes)fd: 파일, buffer: 포인터로 버퍼 가리킴, nbytes: 읽어야 할 바이트 수 다음 그림은 read system call을 실행하기 위한 단계  read의 인자들을 스택에 푸시 (push nbytes-> push.. 2024. 10. 23.