일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 문자열 내마음대로 정렬하기
- 문자열
- CPU bound
- deque
- process
- 동시성문제
- annotation
- URL
- 2차원 배열 출력
- http
- green thread
- java
- 십진수 이진수 전환
- dns
- frontPattern
- Split
- 프로그래머스
- TCP/IP
- 코딩테스트
- IO bound
- reflection
- 가장 가까운 단어
- Spring
- port
- CPU
- stack
- springMVC
- 크기가 작은 부분 문자열
- Queue
- DICTIONARY
- Today
- Total
목록OS (5)
아무나개발하자

멀티 스레드 동시성 문제를 보여주기 위해 코드를 작성해 보았다. Counter class Counter{ private int state = 0; public void increment(){ state++; } public void get(){ System.out.println("현재 상태는 : " + state + "입니다."); } } state라는 전역변수를 공유해서 사용할때의 문제를 보여주기 위해 작성을 했다. increment() 메소드는 state를 +1해주는 메소드이다. MyThread1 class MyThread1 extends Thread{ Counter counter; public MyThread1(Counter counter) { this.counter = counter; } @Ove..

개념 정리 CPU : 프로세스의 명령어를 해석하고 실행하는 장치 IO : 파일을 읽고 쓰거나 네트워크 어딘가와 데이터를 주고 받는것, 입출력 장치와 데이터를 주고 받는것 Burst : 어떤 현상이 짧은 시간안에 집중적으로 일어나는 일 CPU Burst : 프로세스가 CPU에서 한번에 연속적으로 실행되는 시간 IO Burst : 프로세스가 IO작업을 요청하고 결과를 기다리는 시간 프로세스의 인생은 CPU Burst와 IO Burst의 연속이다. 여기서 일반적으로 연산이 많이 필요한 로직은 CPU bound, 로컬 파일 시스템 혹은 네트워크 통신이 많은 로직은 I/O bound라고 한다. CPU bound 프로세스 - CPU 버스트가 많은 프로세스 동영상 편집 프로그램, 머신러닝 프로그램 IO bound 프..

개념 알고 가자 : 하나의 프로세스안에는 하나 이상의 스레드를 가진다. 이유는 스레드가 CPU에서의 실행 단위이기 때문이다. 그럼 컨텍스트 스위칭이 왜 필요한가??? - 단순하다. 여러 프로세스 OR 스레드를 실행시키고 싶어서 하는거다. 그럼 컨텍스트 스위칭은 언제 발생하는가??? - 주어진 time slice(quantum)을 다 사용했거나, IO작업을 해야하거나, 우선순위등등으로 발생을 하게된다. 멀티 태스킹 : 여러개의 프로세스나 스레드를 아주 작은 시간(quantum)으로 나눠서 실행을 하는것을 말한다. 그래서 사용자 입장에서는 여러프로그램이 마치 동시에 실행되는 듯한 느낌을 받는다. 그럼 컨텍스트 스위칭은 누구에 의해 실행되는가??? - OS 커널에 의해 컨텍스트 스위칭이 일어나게 된다. 컨텍스..

- 우리가 작성하는 프로그램은 OS Kernel을 통해 하드웨어인 메모리, CPU, Device를 사용할 수 있는 것이다. 이제부터 각각의 레벨에 해당하는 Thread에 대해 설명하겠다. 코어의 고민 (Hardware Thread) 메모리에서 데이터를 기다리는 시간이 꽤 오래 걸린다. -> 메모리를 기다리는 동안 다른 스레드를 실행하는건 어떨까?? 코어가 한개만 있다고 가정하고 compute(core가 연산 시간), memory(메모리에 적재, 저장등의 시간)에서 memory시간에는 다른 연산을 실행하자 라는개념에서 출발 그래서 위의 그림을 보면 각각의 하나 하나 연산의 흐름을 H/W 스레드라고 한다. hyper - threading 물리적인 코어마다 하드웨어 스레드가 두개라고 생각 결론 : CPU상에서..

지금부터 프로세스, 스레드, 멀티 태스킹, 멀티 스레딩, 멀티 프로그래밍, 프로그램이 모든것을 정리한다. 간단한 개념 정리 프로그램 → 컴퓨터가 실행 할 수 있는 명령어들의 집합 프로세스 → 컴퓨터에서 실행중인 프로그램인데, 즉 OS로부터 독립된 가상의 메모리공간을 할당 받아 실행중인 프로그램 CPU → 명령어를 실행하는 연산장치 메인 메모리 : 프로세스가 CPU에서 실행되기 위해 대기하는 곳, CPU가 글씨를 쓰기 위한 연습장이라고 간단히 생각해라 IO : 파일을 읽고 쓰거나, 네트워크의 어딘가와 데이터를 주고 받거나, 입출력 장치와 데이터를 주거나 받는것 프로세스 시스템의 정리 최초의 프로세스 시스템 : 단일 프로세스 시스템(한번에 하나의 프로그램만 실행됨) 단일 프로세스 P1이 실행된다고 가정할때,..