Computer Science/운영체제15 [운영체제] IPC(Inter-Process Communication) https://claremont.tistory.com/entry/ep2-%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4process [운영체제] ep2) 프로세스(process)ㅁ프로세스(process): 실행 중인 프로그램 (실행/스케줄링의 단위 및 자료구조)보조기억장치에 저장된 프로그램을 메모리에 적재하고 실행하는 순간, 그 프로그램은 프로세스가 된다그리고 이 과claremont.tistory.com ㅁ프로세스 간 통신(IPC, Inter-Process Communication): 두 개 이상의 프로세스가 서로 데이터를 교환할 수 있도록 하는 다양한 메커니즘과 기술각 프로세스는 독립된 메모리 공간을 가지고 있기 때문에, 서로 직접 데이터를 공유하지 못한다. 따라서 IPC는 이러한 .. 2024. 11. 6. [운영체제] 후기 운영체제에 대한 정리를 끝마치게 되었다처음 운영체제에 대한 큰 틀을 잡을 때는 혼공컴운(강민철) 책을 사용해서 기반을 다졌고, 이후 나머지 심화적인 내용은 박태순교수님의 Operating Systems: Internals and Design Principles(William Stalling), Operating System Concepts(Silberschatz, Abraham) 책으로 공부했다. 컴퓨터공학과 박태순교수님의 운영체제 강의는 세종대 대표 명강의로 유명하다 수강신청이 굉장히 치열해 과연 잡을 수 있을까 했지만 1순위 우선순위를 갖고 재빠르게 신청하니 다행히 운 좋게도 쟁취할 수 있었다 학습 분위기는 학생들 수준도 굉장히 높고 치열했다 컴퓨터공학과와 컴퓨터공학과를 복수전공하는 학생들 중 열의 .. 2024. 7. 7. [운영체제] ep10) I/O Management and Disk Scheduling I/O를 다루는 OS 설계의 목적 2가지1. 속도 이슈2. 통일된 방식으로 모든 I/O 기기를 다루는 것 속도 이슈에서 중요한 것은 Seek time(탐색시간)이다Seek time(탐색시간) - 시간 大Rotational delay(회전지연)Transfer Time(전송시간) (참고) 탐색시간, 회전지연, 전송시간 https://claremont.tistory.com/entry/%EC%BB%B4%ED%93%A8%ED%84%B0-%EA%B5%AC%EC%A1%B0-ep7-%EB%B3%B4%EC%A1%B0%EA%B8%B0%EC%96%B5%EC%9E%A5%EC%B9%98 [컴퓨터 구조] ep7) 보조기억장치하드디스크와 플래시메모리같은 보조기억장치들은 개인 컴퓨터부터 서버구성 및 관리까지 다방면으로 사용되는 부품.. 2024. 7. 4. [운영체제] ep9) Multiprocessor and Real-Time Scheduling 멀티 프로세서 시스템이란 뭘까? 2가지 특징이 있다- 프로세서가 여러 개이지만, 메인 메모리가 딱 하나다- 하나의 OS가 시스템 전체를 관리한다 멀티 프로세서 시스템에서는 동기화(Synchronization) 개념이 매우 중요하다 [멀티 프로세서 시스템 스케줄링 디자인 이슈들]- 동기화 빈도- 프로세서 수 프로세서에 프로세스를 할당하는 방법은 2가지가 있다방법 1: 각각의 프로세서마다 별도의 레디-큐를 둔다방법 2: 전역 큐를 둔다 (큐가 c.s. 안에 있어야 한다) - Mutual Exclusion요즘에는 방법 2를 채택한다 멀티 프로그래밍을 쓸까? 말까?동기화가 자주 일어나지 않는다면 문맥 전환이 적어 오버헤드가 적기 때문에 멀티 프로그래밍을 잘 사용할 수 있지만동기화가 자주 일어난다면 문맥 전환이 .. 2024. 7. 4. [운영체제] ep8) Uniprocessor Scheduling ㅇCPU 스케줄링: Process에 CPU 시간을 할당하는 방법스케줄링의 목적은 유저 입장과 시스템 입장으로 나눌 수 있다response time(응답시간): 프로세스가 처음 도착한 후, 처음 CPU를 할당받아 실행되기까지 걸리는 시간turnaround time(반환시간): 프로세스가 시스템에 도착한 후, 모든 작업을 마치고 종료될 때까지의 총 시간throughput(처리율/처리량): 단위시간당 Process를 종료시키는 수processor efficiency(CPU 효율성): 얼마나 OS 개입이 적고, CPU를 이용하였는지Fairness(공정성): 같은 기준을 갖은 Process들은 모두 공정하게 같은 기회를 가져야 한다Predictability(예측 가능성): 언제쯤 끝날지에 대한 예측 가능성 스케.. 2024. 7. 4. [운영체제] ep7) Virtual Memory ㅁVirtual Memory(가상 메모리): m.m.에 프로그램의 일부만 남기고 나머지는 HDD에 적재- 현대 시스템의 99%가 가상 메모리 시스템 ※ 멀티 프로그래밍 레벨이 높을수록 좋은 시스템이다멀티 프로그래밍 레벨: 메모리에서 동시에 실행되는 프로세스의 숫자 1. OS가 프로그램 조각(resident set)을 m.m.로 가져온다- resident set: 프로그램 조각(Page들의 집합)2. 필요한 프로그램이 m.m.에 없으면 interrupt 발생!3. 필요한 프로그램을 가져오기 위해서 OS가 process를 blocked시킨다4. OS가 HDD에 I/O 읽기 요청을 한다5. HDD가 I/O 작업을 처리하는 동안 다른 프로세스가 디스패치된다6. 아까 blocked된 프로세스를 다시 ready 상.. 2024. 7. 2. [운영체제] ep6) Memory Management 7단원은 8단원 VM(Virtual Memory)를 위한 빌드업이라 생각하면 된다메모리 관리에 있어서 중요한 요점 3가지- Relocation: 기준이 1000번지면 모든 주소에 1000을 더해 Relocation이 필요하다[Relative Address + Base Resister -> Physical Address]- Protection: 무슨 일이 있어도 프로그램을 실행할 때는 이 프로그램이 자기에게 할당된 메모리 영역 외에는 Access 하면 안 된다- Sharing 메모리를 관리하는(나누는) 방법 2가지1. Fixed Partitioning- Equal-size partitions- Unequal-size partitions 2. Dynamic PartitioningExternal fra.. 2024. 7. 2. [운영체제] ep5) Concurrency: Deadlock and Starvation ㅁDeadlock의 발생 조건 4가지① Mutual Exclusion(상호배제)② Hold-and-Wait③ No preemption(비선점)④ Circular Wait: 여러 프로세스가 자원을 할당받은 후, 다른 프로세스가 점유하고 있는 자원을 추가로 요청하면서 서로 대기하는 상황이 순환 형태로 이루어지는 것 ㅇ자원 할당 그래프(Resource Allocation Graphs) ㅁ데드락 해결방법 3가지1. Deadlock Prevention: 자원할당 규칙을 만든다(사전에 차단)④ Circular Wait를 깨기 위해 자원에 번호를 매긴다 - 자원을 요청할 때 번호 순서대로 요청 - 낭비 多, 실제로 사용은 x데드락이 발생하면 큰일이 나는 시스템이 아닌 이상 데드락 prevention보다는.. 2024. 6. 30. [운영체제] ep4-3) Concurrency: Mutual Exclusion and Synchronization Concurrency 방안 3가지1. Software Approaches - 알고리즘을 잘 설계2. HW instruction을 이용3. OS가 제공하는 동기화 툴 이용 (e.g. 세마포, 모니터)1번과 2번에 이어 3번에 대해 알아보자 3. OS가 제공하는 동기화 툴 이용2가지에 대해서 다룰 거다ㅇ세마포(Semaphore): 정수 변수 + (blocked)큐가 결합된 구조체 변수오로지 3개의 동작만 수행한다 ① Initialize: 세마포를 0이나 양수값으로 초기화(음수값으로 초기화 하는 건 의미가 없다) ② semWait: 세마포값 -1, "blocked 큐에서 wait!"if (세마포값 >=0) 통과else if(세마포값 ③ semSignal: 세마포값 +1, "blocked 큐에서 ready 큐.. 2024. 6. 29. 이전 1 2 다음