SY 개발일지
article thumbnail
[운영체제] 교착상태 Deadlock
CS 정리/강의 2023. 6. 19. 23:05

각자 일부 자원을 가지고 있으면서 상대방이 가지고 있는 자원을 요구하는 형태 The Deadlock Problem Deadlock 일련의 프로세스들이 서로가 가진 자원을 기다리며 block된 상태 Resource(자원) 하드웨어, 소프트웨어 등을 포함하는 개념 (예) I/O device, CPU cycle, memory space, semaphore 등 프로세스가 자원을 사용하는 절차 요청 Request, 할당 Allocate, 사용 Use, 반납 Release Deadlock Example 1 시스템에 2 개의 tape drive가 있따. 프로세스 P1과 P2 각각이 하나의 tape drive를 보유한 채 다른 하나를 기다리고 있다. Deadlock Example 2 Binary semaphores A..

article thumbnail
[운영체제] 프로세스 동기화 Process Synchronization
CS 정리/강의 2023. 6. 19. 19:58

이전 포스팅 https://soyeonnnb.tistory.com/30 6-1. 프로세스 동기화 Process Synchronization 데이터의 접근 Race Condition 경쟁 상태 Race condition: 하나의 데이터에 둘 이상 접근하게 되면 원하는 결과가 나오지 않을 수도 있음 OS 에서 race condition은 언제 발생하는가? kernel 수행 중 인터럽트 발 soyeonnnb.tistory.com Classical Problems of Synchronization Bounded-Buffer Problem (Producer-Consumeer Problem) Readers and Writers Problem Dining-Philosophers Problem Bounded-Buffe..

article thumbnail
[운영체제] 프로세스 동기화 Process Synchronization
CS 정리/강의 2023. 6. 19. 15:25

Process Synchronization 프로세스 동기화 = Concurrency control 병행 제어 데이터의 접근 Race Condition 경쟁 상태 Race condition: 하나의 데이터에 둘 이상 접근하게 되면 원하는 결과가 나오지 않을 수도 있음 OS 에서 race condition은 언제 발생하는가? kernel 수행 중 인터럽트 발생 시 Process가 system call을 하여 kernel mode로 수행 중인데 context switch가 일어나는 경우 Multiprocessor에서 shared memory 내의 kernel data 1. Interrupt handler v.s kernel 커널모드 running 중 interrupt가 발생하여 인터럽트 처리 루틴이 수행 → ..

2023 현대오토에버 SSAFY 특별전형 코테후기(문제 내용X)
취업준비 2023. 6. 17. 14:42

오늘(2023.06.17) 내 인생 최초의 코테를 봤다... 물론 IM, A형, B형 시험은 제외하고.. ! 3시간동안 3문제를 풀면 되는데 왠지 모르게 한시간 반만에 3문제를 다 풀었다.그래서 30분동안 디버깅하고, 주석 좀 달다가 2시간이 지났을 때 테스트 완료했다. 오늘 코테본다고 이번주에는 알고리즘만 공부하느라 CS 공부도 하나도 못하고 했는데, 이제 다시 공부해야겠다...ㅎ어제 왜 LCA 풀고 했지.. 그냥 원래 풀던 문제들이나 좀 풀껄... 어렵게 나올 줄 알고 (나한테) 어려운 개념 공부했는데..ㅎㅎ  근데 진짜 오늘 본 시험 너무 쉬웠다. 물론 히든테케가 있을테지만 3솔할 줄이야 ,,,ㅎㅎ

article thumbnail
[운영체제] CPU 스케줄링 CPU Scheduling
CS 정리/강의 2023. 6. 13. 20:47

CPU and I/O Bursts in Program Executionload store, add store, read from file 등 CPU만 연속적으로 사용하는 단계(CPU burst)와 I/O를 하는 단계(I/O burst)가 번갈아가며 실행된다.주로 사람이 interaction을 하는 프로그램이 이 cpu burst와 i/o burst가 자주 바뀌는 프로그램이다.하지만 쭉 계산만 한다거나 사람의 interaction이 그다지 필요 없는 프로그램은 cpu burst가 많이 나오는 프로그램이다.CPU Scheduling에서의 issue누구에게 CPU를 줄 것인가중간에 CPU를 뺏어올 수 있도록 할 것인가CPU-burst Time 의 분포여러 종류의 job(=process)이..

article thumbnail
[운영체제] 프로세스 관리 Process Management
CS 정리/강의 2023. 6. 5. 23:04

프로세스 생성 (Process Creation) 부모 프로세스(Parent Process)가 자식 프로세스(Child Process) 생성 보통 복제 생성을 함(추후 설명) 부모 프로세스가 자신과 같은 자식 프로세스를 생성함. 여기서 복제라는 것은 프로세스의 문맥을 모두 복사하는 것이다. code, data, stack, program counter 등 프로세스의 트리 (계층 구조) 형성 프로세스는 자원을 필요로 함 운영체제로부터 받는다 부모와 공유한다 원칙적으로 부모와 자식은 자원을 공유하지 않음 자원의 공유 부모와 자식이 모든 자원을 공유하는 모델 일부를 공유하는 모델 전혀 공유하지 않는 모델(일반적) 자식이 부모를 그대로 복사하면 메모리 낭비가 발생한다(같은 것이 2개가 올라가기 때문에). 그래서 ..

article thumbnail
[운영체제] 프로세스
CS 정리/강의 2023. 6. 2. 00:14

프로세스의 개념 프로세스는 실행중인 프로그램이다 프로세스의 문맥(context) 특정 시점을 봤을 때 이 프로세스가 어디까지 실행을 했는가를 규명 PC가 어디를 가리키고 있는가 레지스터에 어떤 값을 넣어두고 있는가 현재 메모리에 어떤 내용을 담고 있는가 어떤 instruction까지 실행했는가 CPU 수행 상태를 나타내는 하드웨어 문맥 Program Counter(PC) 현재 메모리의 어느 부분을 실행하고 있는지 가리키는 레지스터셋 각종 register 프로세스의 주소 공간 - 메모리와 관련 code, data, stack 프로세스 관련 커널 자료 구조 PCB(Process Control Block) Kernel stack 커널은 어떤 프로세스든 간에 접근 가능하기 때문에 프로세스 별로 커널에 별도의 스..

article thumbnail
[운영체제] System Structure & Program Execution
CS 정리/강의 2023. 5. 31. 23:50

본 챕터에서는 컴퓨터 시스템에서 하드웨어가 어떻게 동작하는지, 프로그램들이 이러한 하드웨어 위에서 어떻게 돌아가는지에 대한 내용을 다룬다. 컴퓨터 시스템 구조 보통 컴퓨터를 HOST라고 부른다. CPU의 작업 영역이 메모리이고, 매 clock 사이클마다 메모리에서 instruction(기계어)을 하나씩 읽어나가면서 실행하게 된다. 각각의 I/O 디바이스들은 각각을 전담하는 작은 CPU같은 것들이 존재한다. 이것을 device controller라고 부른다. 그래서 각각의 I/O와 관련된 작업은 CPU가 아니라 device controller에서 작업을 한다. 메인 CPU에 메인 memory 가 있듯이 디바이스들도 작업공간들이 필요한데, 이걸 local buffer라고 한다. CPU안에는 메모리보다 더 빠..

article thumbnail
[운영체제] 운영체제 개요(Introduction to Operating Systems)
CS 정리/강의 2023. 5. 18. 22:10

운영체제란 무엇인가? 운영체제(Operating System, OS)란? 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층 따라서 사용자가 컴퓨터 하드웨어를 직접 사용하는 것이 아니라 운영체제, 그리고 각종 소프트웨어를 통해 컴퓨터 하드웨어를 다루게 된다. 협의의 운영체제(커널) - 좁은 의미 운영 체제의 핵심 부분으로 메모리에 상주하는 부분. 전공자로서 운영체제라고 하면 보통 좁은 의미의 운영체제를 의미한다. 광의의 운영체제 - 넓은 의미 커널 뿐 아니라 각종 주변 시스템 유틸리티를 포함한 개념. 광의의 운영체제에는 메모리에 상주하지 않는 별도의, 독립적인 프로그램이지만 운영체제의 범주에 포함시킨다. 운영체제의 목표 컴퓨터 시스템을 편리하게 사용할..