Computer Science/운영체제15 [운영체제] ep4-2) Concurrency: Mutual Exclusion and Synchronization Concurrency 방안 3가지1. Software Approaches - 알고리즘을 잘 설계2. HW instruction을 이용3. OS가 제공하는 동기화 툴 이용 (e.g. 세마포, 모니터)저번 1번에 이어 2번에 대해서 알아보자 2. HW instruction을 이용 - 수정이 불가능하며 중간에 인터럽트로 중단되지도 않는다 HW적으로 움직인다2가지 HW instruction이 있다① Compare & Swap Instruction: 비교하고 같으면 swap// word: 어떠한 저장공간의 주소// 같다면 word를 newval로 swap한다// compare_and_swap 실행 전 word에 저장되어 있던 값을 returnint compare_and_swap(int* word, int test.. 2024. 6. 29. [운영체제] ep4-1) Concurrency: Mutual Exclusion and Synchronization ㅁ동시성(Concurrency): 여러 작업이 짧은 시간 간격으로 번갈아 가며 수행됨으로써 동시에 처리되는 것처럼 보이게 만드는 것현대 OS는 멀티 프로그래밍, 멀티 프로세싱 등의 기법으로 동시성을 사용하는 데에 있어 발생하는 문제들을 해결해야만 한다 상황) 은행 계좌 파일에 있는 데이터 x를 저장, 처음 잔고는 0원이다 ㅇRace Condition: 결국에는 둘 중에서 마지막으로 작업한 결과만이 남는다Race Condition의 발생을 막기 위해 critical section의 mutually exclusive한 실행이 필요하다 ㅇcritical section(임계구역): Race Condition이 발생할 수 있는 코드 (전혀 예측할 수 없음)critical section은 동시에 실행시키면 안된다.. 2024. 6. 29. [운영체제] ep3) 스레드(thread) [컴퓨터 구조] ep5) 스레드 파트를 복습하자스레드: 실행의 단위- 하드웨어적 스레드: 하나의 코어가 동시에 처리하는 명령어 단위- 소프트웨어적 스레드: 하나의 프로그램에서 독립적으로 실행되는 단위 https://claremont.tistory.com/entry/%EC%BB%B4%ED%93%A8%ED%84%B0-%EA%B5%AC%EC%A1%B0-ep5-CPU-%EC%84%B1%EB%8A%A5-%ED%96%A5%EC%83%81-%EA%B8%B0%EB%B2%95 [컴퓨터 구조] ep5) CPU 성능 향상 기법세계 곳곳의 과학자들과 엔지니어들은 조금이라도 더 빠른 CPU를 만들기 위해 혈색이다 이번 장에서는 CPU 설계 기법과 명령어 처리 기법들에 대해 알아보겠다 ㅇ클럭 "컴퓨터 부품들은 클럭이라clarem.. 2024. 4. 8. [운영체제] ep2) 프로세스(process) ㅁ프로세스(process): 실행 중인 프로그램 (실행/스케줄링의 단위 및 자료구조)보조기억장치에 저장된 프로그램을 메모리에 적재하고 실행하는 순간, 그 프로그램은 프로세스가 된다그리고 이 과정을 "프로세스를 생성한다"라 표현한다 + 프로세스를 직접 확인하는 방법- Windows: 작업 관리자 프로세스 탭 - UNIX체계: ps 명령어 포그라운드(foreground) 프로세스: 사용자가 볼 수 있는 앞 공간에서 실행되는 프로세스vs백그라운드(background) 프로세스: 사용자가 보지 못하는 뒷 공간에서 실행되는 프로세스이 백그라운드 프로세스 중에서 사용자와 상호작용하지 않고 혼자 묵묵히 일을 수행하는 프로세스들을 Windows에서는 서비스(service)라 하고 UNIX체계에서는 데몬(daem.. 2024. 4. 8. [운영체제] ep1) 운영체제의 큰 그림 운영체제(Operating System): 실행할 프로그램에 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕는 특별한 프로그램(컴퓨터에서 가장 중요한 프로그램이다)여기서 자원이란 시스템 자원으로써 프로그램 실행에 마땅히 필요한 요소들을 말한다 e.g. CPU, 메모리, 보조기억장치, I/O, 패킷, 파일 등 운영체제를 잘 알려면 커널의 개념을 확실하게 알고 가야 한다ㅇ커널(kernel): 운영체제의 핵심 서비스를 담당하는 부분메모리에는 커널 영역과 사용자 영역으로 나뉘어져 있으며, OS는 커널 영역에 적재되어 자원 할당과 프로그램 실행에 도움을 준다 앞으로 운영체제를 지칭할 때는 특별한 언급이 없는 이상 커널을 지칭한다고 생각하면 된다 대부분의 운영체제 서비스는 커널에 있지만 커널에 포함되지 않.. 2024. 3. 3. [운영체제] ep0) 운영체제(OS)를 잘 알아야 하는 이유 (주의!!) [운영체제]를 공부하기 이전에 [컴퓨터 구조]를 먼저 공부하는 것을 추천한다https://claremont.tistory.com/category/Computer%20Science/%EC%BB%B4%ED%93%A8%ED%84%B0%20%EA%B5%AC%EC%A1%B0 'Computer Science/컴퓨터 구조' 카테고리의 글 목록전자정보통신공학, 컴퓨터공학 전공claremont.tistory.com운영체제는 컴퓨터 구조의 지식을 베이스로 갖고 간다물론 운영체제에서 컴퓨터 구조 개념이 쓰일 때마다 내가 링크를 걸어 그 부분을 공부하도록 하게 할 것이지만, 그래도 컴퓨터 구조를 먼저 공부하고 운영체제 공부를 하는 걸 추천한다 (바라보는 시야가 달라진다)ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ.. 2024. 1. 17. 이전 1 2 다음