JVM과 .NET프레임워크 비교하여 설명하시오 JVM과 .NET프레임워크 둘다 윈도우즈뿐만아니라 다른 운영체제에서 실행할 수 있게하는 가상기계 개발환경이다 JVM은 JAVA->바이트코드->기계어 .NET프레임워크는 소스코드->MS-IL코드->기계어로 변환한다 버퍼와 스풀링을 비교하여 설명하시오 버퍼와 스풀링 모두 속도 차이가 큰 장치, 프로그램간의 통신을 원활하게 하기위해 임시저장공간을 두어 처리하도록하는 방법이다 다만 버퍼는 일대일만 가능하지만, 스풀링은 일대다의 요청도 처리가 가능하다 인터럽트 처리 과정을 설명하시오 인터럽트가 발생하면 커널모드로 전환된다. 그리고 현재 실행하던 프로그램의 상태를 PCB에 저장하고, 다음에 실행할 프로그램을 레지스터에 값복사한다. 인터럽트 번호를 통해 인터럽트 벡터 테..
쓰레드는 주소공간, 전역변수를 공유하고, 레지스터, 시그널 마스크, 스택을 별도로 보유한다 쓰레드가 공유하는 주소공간은 힙, 데이터, 코드 영역이다 쓰레드가 공유하는 것 : 전역변수, 코드, 데이터, 힙영역 쓰레드가 개별적으로 가지고 있는 것 : 스택 포인터, 레지스터, 시그널 마스크 시그널은 특정 프로세스를 지정해서 보내진다. 프로세스는 어떤 시그널을 수신할 것인지 지정할 수 있다 프로세스 내의 쓰레드는 프로세스가 수신하는 모든 시그널이 전달된다 각 쓰레드는 자신에게 전달되는 시그널들을 선택적으로 수신할 수 있다 프로세스에는 수신되었으나 해당 쓰레드가 실행 상태가 아닌 경우에는 해당 쓰레드의 대기 시그널 대기열에 넣는다. 시그널을 종류별로 한 개만 대기열에 들어갈 수 있다. 동일한 종류의 시그널이 여러..
프로세스와 쓰레드의 차이점을 설명하고, user-level thread와 kernel-level thread를 비교하여 설명하시오. 프로세스란 실행중인 프로그램을 말하며, 쓰레드는 프로세스 내에서 실행되는 흐름의 단위를 말한다. 프로세스는 running,blocked,ready,terminated,new 등의 생명주기를 가지고 있고, 프로세스의 정보를 저장하기위한 pcb라는 별도의 자료구조가 존재한다 쓰레드도 마찬가지로 born, running, blocked, ready, terminated등의 상태가 존재한다 요즘은 멀티 프로세스, 멀티쓰레드가 지원되어 프로세스, 쓰레드 둘다 스케줄링 기법이 사용된다 쓰레드에는 사용자 수준 쓰레드와 커널 수준 쓰레드가 있는데, 사용자 수준 쓰레드는 사용자 수준에서 쓰..
교착상태 발생 4가지 필요조건 4가지 중 하나라도 지켜지지않으면 발생하지 않는다 예방(prevention) 상호배제를 만족하지않도록 할 수는 없다 상호배제 빼고 나머지 3개는 발생하지 않도록 해도 된다 점유와 대기 조건의 배제 필요한 자원을 모두 한꺼번에 요청 (가지고 있으면서 요구x) 단점 자원 낭비 비효율적 자원공유 무기한 연기 발생 가능 비선점 조건의 배제 자원요구 거절 -> 점유 자원 반납 98%했는데 자원요구할때 작업손실 가능 단점 비용 및 시간 증가 무기한 연기 발생 가능 환형대기 조건의 배제 자원의 유형별로 할당 순서를 부여 요구할때는 순서대로 단점 자원할당 융통성 부족 별도로 자료구조 관리,스케줄러가 추가적으로 일을 해야한다 ->자원 낭비 초래 새로운 자원 추가시, 프로그램과 시스템 재구성..
환형 대기 -> 꼬리에 꼬리를 무는 상황 공유자원이면 상관이 없는데 배타적자원일때 문제가 생긴다 스풀링 부분부분보내서 출력함 선점자원 수월하게 할 수 있음 좀이따함 언제든지 찾을 수 있음(예매한 기차표자리) 비선점자원 프린터 99%했는데 취소하면 지금까지했던거 버려야됨 stateless 지역변수 stateful 전역변수 재진입 코드 reentrant code(printf) 교착상태: 일어날 수 없음 버스가 안지나다님 무기한 연기 : 일어날 수 는 있는데 안됨 버스는 지나다니는데 계속 차있음 식사하는 철학자 문제는 젓가락 하나씩 들고 다른사람이 놓기를 기다리면 deadlock 내가 젓가락 집으려고할때마다 다른사람이 집어가면 무기한 연기 교착상태 발생 4가지 필요조건 상호 배제 자원 배타적으로 점유 점유와 ..
Test-and-Set 일정횟수동안만 대기 = 한정대기(bounded waiting) n-1번 양보하고 들어간다 CAS(Compare and Exchange / Compare and Swap) Itanium구조는 multicore이다 interrupt는 instruction이 끝나고 다른 instruction시작되기 전에 발생함 lock cmpxchg 이 순간에는 메모리 접근 한 번만 하게 한다 코어가 여러개있을때도 atomic하게 실행하게한다 CISC(복잡한 INSTRUCTION SET) -> CAS힘듬 RISC(단순한 INSTRUCTION SET) 0,0,1 0==0이니까 lock이 1들어감 CAS false되니까 임계구역들어감 CAS 명령어를 사용한 경쟁조건 회피 다르면 false 같으면 true ..
임계 구역 공유데이터가 변경되는 프로그램 부분 무한반복, 블록킹 x 상호 배제 임계구역에 하나의 쓰레드만 있어야한다 진행 다른 쓰레드의 인계구역 진입을 막으면 안된다 한정된 대기 쓰레드가 들어가서 무한정 연기하면 안된다 실행속도 무관 쓰레드의 상대적인 속도에 대한 가정을 하면 안됨 Dekker, Peterson -> 2thread Lamport -> 다수의 thread 하드웨어 -> machine instruction ->상호배제 지원 Dekker 계속 돌면서 기다리는것: spinlock 2개의 반복문이 nesting 돼있다 Peterson thread t1이 양보부터한다 Lamport 하드웨어적 상호배제 구현 인터럽트 거부 TEST-AND-SET 명령어 SWAP 명령어 COMPARE-AND-EXCHAN..
쓰레드 = 실 쓰레드 프로레스 내에서 실행되는 흐름의 단위 스레드=function, procedure multithread 프로그램 특징: 주소공간, 전역변수 공유 레지스터, 스택(지역변수), 시그널 마스크 등은 쓰레드 별로 별도 보유 코드(text), 데이터(전역변수), 파일 멀티스레드 장점 : 통신하기가 쉽다(오버헤드 발생x) 단점 비동기적인 접근에서 문제 해결해야함 멀티스레드 텍스트,데이터,힙 공용 쓰레드 스택-> 스택포인터, 프로그램 카운터, 레지스터 별도 사용자 수준 쓰레드 os x 실행시간 시스템에 의해 스레드 관리 1개의 계정을 여러명이서 공유하는 상황이라고 보면된다 커널 수준 쓰레드 os 지원 8개 쓰레드 관리 쓰레드 동시 실행 가능 linux thread 쓰레드와 프레스스를 태스크로 동일..
- Total
- Today
- Yesterday
- CSS
- git 예전 커밋 수정
- 데이터베이스
- 2024인프콘
- 프로그래머스
- 인프콘2024
- 리눅스
- kloa
- 데이터3법
- DDL
- 오픈소스
- 데이터 3법
- 클로아
- javascript
- git commit 수정
- authorization_code
- oauth2.0
- bfs
- infcon 2024
- html
- oauth
- 로스트아크 캐릭터
- 우분투
- SQL
- Android Studio
- DML
- SpringBoot
- authorization code
- git
- html #웹 #웹사이트 #플레이리스트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |