일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 깃
- Effective Java
- spring
- 정보처리기사
- 컴퓨터공학
- java
- 프로그래밍
- 스프링
- 깃허브
- OS
- 디지털
- 뮤텍스
- 컴퓨터과학
- 신입사원
- Public
- github
- 알고리즘
- 스터디
- 운영체제
- CS
- IT
- 신입
- 자바
- 이펙티브 자바
- 메모리
- 세마포어
- 우리카드
- package-private
- 공채
- 개발
- Today
- Total
목록CS스터디/운영체제 (11)
주니어 개발자 성장기
개요 '식사하는 철학자 문제'라고 하며 철학자는 1. 밥먹기 2. 생각하기 2가지 일을 할 수 있다. 반면 젓가락의 갯수(공유자원)는 제한되어 있다. 이 문제의 해결법을 코드로 살펴보자. Solution A Initialization /* 최초 값은 모두 1이다. */ semaphore chopstick[5]; 철학자는 5명으로 가정하고 젓가락은 5개가 있다고 가정하자. Philosopher i(i번째 철학자) do { //왼쪽, 오른쪽 젓가락을 잡는 연산 P(chopstick[i]); P(chopstick[(i + 1) % 5]); //식사 eat(); //왼쪽, 오른쪽 젓가락 놓는 연산 V(chopstick[i]); V(chopstick[(i + 1) % 5]); think(); } while(1);..
문제 상황 주로 데이터베이스에서 발생하는 문제이다. 한 프로세스가 DB에 Write 중일 때 다른 프로세스가 접근하면 안된다. Read는 동시에 여럿이 해도 된다. 해결법 Writer가 DB에 접근 허가를 아직 얻지 못한 상태에서는 모든 대기중인 Reader들을 다 DB에 접근하게 해준다. Writer는 대기 중인 Reader가 하나도 없을 때 DB 접근이 허용된다. 일단 Writer가 DB에 접근 중이라면 Reader들은 접근이 금지된다. Writer가 DB에서 빠져나가야만 Reader의 접근이 허용된다. 여기서 Shared Data는? DB 자체 readcount - 현재 DB에 접근 중인 Reader의 수 두 가지 동기화 변수(세마포어) Mutex 공유 변수 readcount를 접근하는 코드(cri..
Bounded Buffer Problem (유한 버퍼 문제) Producer-Consumer Problem(생산자-소비자 문제) 이라고도 한다. Producer 데이터를 버퍼에 삽입 Consumer 데이터를 버퍼에서 제거 여기서 Shared Data는? 버퍼 자체 버퍼 조작 변수(empty와 full 버퍼의 시작 위치) 문제의 원인 다수의 Producer / Consumer가 버퍼에 데이터를 삽입, 제거할 수 있기 때문이다. 버퍼 자체의 경쟁 상황 발생 버퍼가 가득 차거나 빌 경우 추가/삭제가 불가능함을 알아야 한다. 두 가지 세마포어가 필요 Mutual exclusion shared data의 동기화 때문에 Binary semaphore가 필요 (2번 스텝) 다수의 주체가 동시에 버퍼를 변경할 수 없도..
예시 유닉스 대형 컴퓨터 시스템을 위한 목적으로 만들어짐(다중 사용자) 코드의 대부분을 C언어로 작성 높은 이식성 (머신 디펜던트)
운영체제란? 정의: 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층 좁은 의미의 운영체제 "커널" 운영체제의 핵심(core) 부분으로 메모리에 상주하는 부분 넓은 의미의 운영체제 커널 뿐만 아니라 각종 주변 시스템 유틸리티를 포함한 개념 목적 크게 2가지 단으로 볼 수 있다. OS위에 올라가 있는 사용자 및 소프트웨어 계층 사이, 그리고 OS와 하드웨어 사이가 있다. 1. 사용자, 소프트웨어 & OS 간의 인터랙션 동시의 사용자/ 프로그램들이 각각 독자적 컴퓨터에서 수행되는 것 같은 환상을 제공한다. 복잡한 하드웨어 조작을 OS가 대행해준다. 2. OS & 하드웨어 간의 인터랙션 가장 핵심적인 기능 컴퓨터 시스템의 자원을 효율적으로 관리 프롬프트 ..