본문 바로가기

컴퓨터 공학27

Chapter 6. 동기화 도구들 - 3부 안녕하세요 파피몬입니다! 운영체제 6단원에 대해 공부해 보았습니다. 중간고사 보고 이거 저거 준비하고 과제하고 하느라 이제서야 포스팅하네요ㅜㅜㅜ 드디어 3부입니다! 아마 4부작이 되지 않을까 싶네요! Abraham Silberschatz의 Operating System Concepts 10th edition과 학부 수업을 듣고 정리한 내용입니다. 오개념이 있다면 알려주세요~~ 1,2부에서 살펴본 임계구역 문제에 대한 솔루션들은 하드웨어 기반이다. 이는 복잡하고, 응용 프로그래머는 사용할 수 없는 솔루션이다. 이번 3부에서는 Mutex Lock, Semaphore에 대해서 공부해보자! 하드웨어 기반의 솔루션(TAS, CAS 등등)을 뒤로 하고 이제 상위 수준 소프트웨어 도구를 살펴볼 차례이다! 경쟁 조건을.. 2020. 11. 13.
Chapter 6. 동기화 도구들 - 2부 안녕하세요 파피몬입니다! 운영체제 6단원에 대해 공부해 보았습니다. 우선... 2부입니다! 몇부작일지는 모르겠네용 Abraham Silberschatz의 Operating System Concepts 10th edition과 학부 수업을 듣고 정리한 내용입니다. 오개념이 있다면 알려주세요~~ 1부에서 우리는 빠른 시스템 멀티 코어 + 선점형 커널을 사용하고 있고, 프로세스 동기화를 어떤 방식으로 해결할까? 라는 질문을 던진채 마무리 했다. 이제 컴공 형님들이 어찌 해결해 오셨는지 하나씩 살펴보자. 2020. 10. 20.
Chapter 6. 동기화 도구들 - 1부 안녕하세요 조엘입니다! 운영체제 6단원에 대해 공부해 보았습니다. 내용이 많아서 몇 부작이 될지 모르겠네용ㅜㅜ Abraham Silberschatz의 Operating System Concepts 10th edition과 학부 수업을 듣고 정리한 내용입니다. 오개념이 있다면 알려주세요~~ 우선 본격적인 내용 공부에 앞서 최호성 선생님의 강의를 잠깐 듣고 가자. 운영체제 공부하면서 계속 나오는 용어들에 대해 비유적으로 이해할 수 있게 알려주시는데, 정리하고 가면 좋을 것 같다! - 동시성: 여러 일을 여러 사람이 각자 동시에 하는 것 - 병렬성: 같은 일을 여러 사람이 동시에 하는 것 - 원자성: 감히 쪼개어 나눌 수 없는 연속된 일 - 의존성: 행위나 존립에 대해 의존 하는 것 원자성과 동기화를 화장실에.. 2020. 10. 20.
Chapter 5. CPU 스케줄링 - 2부 안녕하세요 조엘입니다! 운영체제 5단원에 대해 공부해 보았습니다. 1부에 이어서 2부 포스팅합니다! Abraham Silberschatz의 Operating System Concepts 10th edition과 학부 수업을 듣고 정리한 내용입니다. 오개념이 있다면 알려주세요~~ 1부에서 살펴본 스케줄링은 단일 처리기 코어를 가진 시스템을 가정하고 설명했었다. 근데 현실은 핸드폰에서도 멀티코어를 지원한다... 우리는 이제 다중코어의 세상에 살고 있다! 이 친구는 무엇을 다르게 고려해야할까? 다중 처리기는 두가지 방식으로 구현될 수 있다. AMP와 SMP가 바로 그것이다. AMP (Asymmetric Multi-Processing) - 마스터 처리기: 모든 스케줄링 결정, I/O 처리, 타 시스템의 활동 취.. 2020. 10. 16.
Chapter 5. CPU 스케줄링 - 1부 안녕하세요 조엘입니다! 시험 기간이라서 오랜만에 포스팅이네요ㅜㅜ 운영체제 5단원에 대해 공부해 보았습니다. 1부, 2부로 나뉘어져 있습니다! Abraham Silberschatz의 Operating System Concepts 10th edition과 학부 수업을 듣고 정리한 내용입니다. 오개념이 있다면 알려주세요~~ 우선 공부하면서 여러 스케줄링에 대한 용어가 혼동되었다. 유튜브를 찾다보니 정리를 잘해주신 최희준 교수님의 강의를 찾을 수 있었다. 여기서 아주 깔끔하게 정리해주신다. Job 스케줄링: 디스크에 있는 프로그램이 메모리에 준비상태로 진입하는 것을 조율 CPU 스케줄링: 실행할 프로세스를 어떤 CPU에 할당해 줄 것인가를 조율 (멀티 코어 등에서 필요) 프로세스 스케줄링: 메모리에 준비 상태로.. 2020. 10. 16.
Chapter 4. 스레드와 병행성 안녕하세요 조엘입니다! 운영체제 4단원에 대해 공부해 보았습니다. Abraham Silberschatz의 Operating System Concepts 10th edition과 학부 수업을 듣고 정리한 내용입니다. 오개념이 있다면 알려주세요~~ 스레드는 CPU 이용의 기본 단위로 명령을 처리한다. 고유의 thread ID, PC, 레지스터 집합, 스택으로 구성이 된다. 프로세스는 한번에 여러 개의 스레드들을 가질 수 있고, 한번에 한가지 이상의 일을 수행할 수 있게 된다. 같은 프로세스에 속한 스레드들은 같은 코드/데이터 섹션, 열린 파일, 신호 등과 같은 OS자원들을 공유한다. 응답성 단일 스레드 프로세스 같은 경우, 해당 연산이 완료될 때 까지 사용자에게 응답하지 않는다. 반면 다중 스레드 프로세스는.. 2020. 9. 17.
Chapter 3. 프로세스 - 2부 안녕하세요 조엘입니다! 운영체제 3단원에 대해 공부해 보았습니다. Abraham Silberschatz의 Operating System Concepts 10th edition과 학부 수업을 듣고 정리한 내용입니다. 오개념이 있다면 알려주세요~~ 1,2부로 나뉘어 있습니다! 프로세스가 시스템에서 실행중인 다른 프로세스와 데이터를 공유하지 않으면 독립적이라한다. 프로세스가 시스템에서 실행중인 다른 프로세스와 데이터를 공유한다면 협력적이라고 한다. 프로세스가 데이터를 공유를 해야하는 이유는 다음과 같다. 1. 정보 공유가 필요한 경우 2. 계산을 빨리 할 수 있다. (병렬 처리의 가능성) 3. 시스템 기능을 별도의 프로세스/스레드로 나누어 모듈식 형태로 시스템 구성을 할 수 있다. 이렇게 좋은 데이터 공유를 .. 2020. 9. 17.
Chapter 3. 프로세스 - 1부 안녕하세요 조엘입니다! 운영체제 3단원에 대해 공부해 보았습니다. Abraham Silberschatz의 Operating System Concepts 10th edition과 학부 수업을 듣고 정리한 내용입니다. 오개념이 있다면 알려주세요~~ 1,2부로 나뉘어 있습니다! 프로세스란 실행 중인 프로그램이다. 프로세스의 현재 활동 상태는 프로그램 카운터의 값, 프로세서 레지스터의 내용으로 나타나게 된다. *프로그램: 디스크에 저장된 실행파일로, 수동적인 존재 *프로세스: 다음에 실행할 명령어를 지정하는 프로그램 카운터가 있고, 관련 자원의 집합을 가진 능동적인 존재 *프로그램 카운터(PC): 다음에 실행할 명령어의 주소 프로세스의 메모리 배치는 다음과 같다. 스택 섹션: 함수 호출시 임시 데이터 저장장소(.. 2020. 9. 17.
Chapter 2. 운영체제 구조 안녕하세요 조엘입니다! 운영체제 2단원에 대해 공부해 보았습니다. Abraham Silberschatz의 Operating System Concepts 10th edition과 학부 수업을 듣고 정리한 내용입니다. 오개념이 있다면 알려주세요~~ 운영체제는 다음과 같은 기능을 제공할 수 있어야 한다. -사용자 인터페이스: CLI, GUI, 터치스크린 등 -프로그램 수행: 프로그램을 메모리에 적재해 실행할 수 있어야 한다. -입출력 연산: 프로그램이 입출력을 요구하면 OS가 제어를 넘겨받아 처리해줘야 한다. -파일 시스템 조작: 파일 조회, 파일 수정, 파일 권환 관리 등 -통신: 프로세스 사이의 정보를 교환해야 할 경우, 공유 메모리(동일 컴퓨터의 프로세스들)와 패킷을 통한 메시지 전달(네트워크로 연결된 .. 2020. 9. 13.
반응형