운영체제 ( OS )
[운영체제] -Nachos 프로젝트 - KThread.join()구현
Thread Join? 쓰레드 조인은 쓰레드 간의 동기화를 위해 사용된다. 예를 들어 A쓰레드와 B쓰레드가 존재한다고 해보자. 쓰레드 B가 쓰레드 A가 종료된 다음에 실행될 필요가 잇을 때, 쓰레드 B는 쓰레드 A에 조인하게 되어 쓰레드 A가 완전히 다 끝난 다음에 수행된다. 쓰레드 C가 있을 때, 쓰레드 C는 쓰레드 A와 B가 모두 다 끝난 상태에서(컴파일이 모두 끝난 상태)에서 실행해야 올바르게 링킹이 되기 때문에 A,B쓰레드가 모두 실행된 뒤에 실행되어야 한다. 쓰레드 조인은 이를 보장할 수 있는 툴이다. Thread.join을 구현하기 위해서는 어떤 것이 필요할까 Thraedjoin은 기다려야하는 쓰레드가 Threadjoin을 호출한다. 왜 기다려야하는 쓰레드가 Threadjoin을 호출할까? 왜..
![[운영체제 ] 6주차 정리본](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FY2oCG%2Fbtq3nIKBvhH%2F0rm4LU5DHtquYued8Zm3tK%2Fimg.png)
[운영체제 ] 6주차 정리본
6주차 운영체제 필기 우선 순위 inversion (우선순위 역전 ) 우선 순위가 낮은 순위를 가진 자원이 lock을 가져서 우선순위가 높은 순위를 가진 자원이 실행하지 못하는 문제 C가 우선 실행을 한다, 실행중에 wait를 호출하여 sem-a를 획득하여 크리티컬 섹션문제 해결 그러다가 높은 우선순위의 b가 들어와 b가 실행 그러다가 또 a가 들어와 a가 실행 이 상태에서 wait를 호출하여 sem-a를 요청 하지만 이미 c에 의해서 획득이 되어잇기 떄문에 a는 기다려야 되서 block이 실행된다. 결국 프로세서 c는 실행하지 못하기 때문에 a도 sem-a 때문에 실행하지 못하는 상황을 우선순위 역전 현상ㅇ을 말한다. è 우선순위 계승으로 이 현상 해결 우선순위가 낮은 프로세스가 우선순위가 높은 프로세..
![[운영체제 ] 5주차 정리본](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnxTpD%2Fbtq3xmy91gF%2F5KQFPomK0Be2TW5ssPssEK%2Fimg.png)
[운영체제 ] 5주차 정리본
5주차 운영체제 필기 백그라운드 가장 하위레벨: 머신 코드로 만들어지지 0,1를 이용해 코딩 è 이후 어셈블리 언어 Race condition : 여러 개의 프로세서가 동시에 공유된 데이터에 액세스할 떄 실행순서가 어떻게 되는냐에 따라 값이 달라지는 현상(어떤 프로세서가 먼저 실행하느냐) 레이스 컨디션이 발생하는 코드에서 공유데이터를 액세스하는 코드가 존재한다. 이부분을 바로 크리티컬 섹션이라고 한다. Critical Section 여러 개의 프로세서가 공유된 데이터에 동시에 액세스하는 문제 (Critical section problem) 임의의 두 프로세서가 크리티컬 섹션에 들어가지 않게끔 해줘야한다. -> 크리티컬 섹션문제 해결 임의의 한순간에 한 프로세서만 크리티컬 섹션에 들어가게 한다. 데이터가 ..
![[운영체제 ] 3장 정리본](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdCyYEP%2Fbtq3xnEOe9h%2FTFcPciHWwyjc1ihNYFbhWk%2Fimg.png)
[운영체제 ] 3장 정리본
[ 3장 프로세스와 관련된 여러가지 오퍼레이션 ] 3장에서 배울 내용 Process l 프로세서 - 정의 : 실행 중에 있는 프로그램을 말한다. - 프로세스는 디스크에 있는 프로그램뿐만 아니라 프로세스를 실행하기 위한 여러가지 자원들도 포함해 말한다. - 자원들 – text section : 프로그램 코드 Program Counter : 다음에 실행되어야 하는 메모리 주소 Stack : 동적 메모리 Data section : 전역변수를 저장하는 부분 Heap..
![[운영체제] Thread 정리본](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyFXcE%2Fbtq3t30ZpzW%2FrLIN6hfzCvashqONxLuZiK%2Fimg.png)
[운영체제] Thread 정리본
4장 쓰레드 l Thread : 프로세서보다 더 작은 단위의 CPU활용단위이다. l - 같은 프로세서안에 존재하는 쓰레드들은 프로그램 코드, 데이터 등 운영체제가 제공해주는 소스들을 공유하는 특징을 가지고 있다. - 멀티 쓰레드 : 장점 ) 모듈러하게 소프트웨어 만들 수 있다. 특징 ) ① 각각의 프로세서들이 독립적으로 실행되어야 하기 때문에 레지스터, 스텍들이 각각 따로 존재한다. ② 레지스터, 스택들 제외 하고 나머지 (코드, 데이터, 파일)들을 공유하기 때문에 메모리 사이즈가 작아지고, 데이터 공유가 더 쉽다. ③ 여러가지 Task들을 운영가능 / 빠르게 문제 해결가능 ④ 소스 공유측면에서도 뛰어나다. 멀티 프로세서의 경우 별도의 메모리 공간을 가지고 Message Passing의 매커니즘을 이용해..
[운영체제] [ 1주차 내용 정리 전 필기본]
1. Computer start-up 우선 컴이 처음 파워온이 되면 Bootstrap program이 실행이 된다. rom이나 eeprom이 있다. 혹은 firmware도 있다. 실행이 되면서 기본적인 check up을 한다. 즉 메모리에 bad 세턱는 없는지 여러가지 컴포넌트(메모리, cpu)가 잘꽂혀져있는지 기본적인 첵업하고 커널을 로딩 커널이 기본적인 초기화 작업한다. Interrupt 서비스 루틴을 초기화 한다던지 (뒤에가서 자세히 설명) 커널이 사용하는 여러가지 데이터 구조들을 초기화하는지 등에 대한 작업 이러한 초기화 작업들이 다 끝나게 되면 로그인 화면이 뜬다. 뜨고 난뒤 운영체제가 하는 일은 기다리기. 예를 들어 사용자가 로그인 하기 위해서 키보드를 타이핑 한다던가 또는 마우스를 움직인다던..
[운영체제] [ Thread ]
Thread? 프로세서보다 더 작은 단위의 CPU 활용단위이다. 멀티쓰레드 멀티 쓰레드는 각각의 프로세서들이 독립적으로 실행되야하기 때문에 레지스터 , 스택 등이 각각 따로 존재한다. 그 외 코드 , 데이터, 파일들은 쓰레드끼리 공유하기 때문에 메모리 사이즈가 작아지고, 데이터 공유가 쉽다. 여러개의 Task를 운영가능하고 빠르게 문제해결가능하다. 또한 소스 공유 측면에서도 뛰어나다. 별도의 메모리 공간을 가지고 메시지 패싱들의 매커니즘을 이용해 데이터를 주고 받지만 멀티 쓰레드는 같은 프로세서 내의 쓰레들끼리 자원 공유하기 때문이다. 메모리 할당방면에서도 장점이 존재한다., 멀티 프로세서는 프로세서들별로 메모리를 할당해야 하지만, 쓰레드는 프로세서 내에 쓰레드가 만들어지기 때문에 별도로 메모리를 할당할..