- Today
- Total
목록분류 전체보기 (360)
프로그래밍 농장
Deadlock ? -> 프로세스들이 서로 unlock이 연상되기를 기다리면서 트랜잭션의 수행을 중단하고 있는 상태이다. ' 교착상태 ' -> Necessary conditions for deadlock ( 데드락이 생길수 있는 4가지 조건 ) : Mutuaal exclusion : 하나의 리소스를 어떤 프로세스가 장악하면 다른건 사용불가 : Hold and wait : 프로세스가 cpu를 장악시, 끝날떄까지 다른건 사용불가 : No preemption : 프로세스가 cpu를 장악중일시, 누군가 뻇는것이 불가능 : Circular wait : 리소스의 스레드가 필요로 하는 사이클이 있음 ( 서로 필요한 리소스가 다름, ( 연관이있음 ) ) -> 이 중 하나라도 만족하지못하면 쉽게 데드락이 풀림 아래그림은..
Critical section : 프로세스가 다른 프로세스와 공유하는 shared data 영역이 있다면 , 이를 크리시컬 섹션이라고 지정 -> 크리티컬센션에는 오직 프로세스가 1개만 사용될수있다. 이는 몇가지 조건이 필요하다 : Mutual exclusion : 프로세스가 하나 돌아가고 있으면, 다른 프로세스는 구동될수없다. : Progress : 크리티컬 섹션에 들어가고 싶은 프로세스들이있으면, 무조건 하나는 들어가야한다. : Bounded waiting : 하나의 프로세스는 어느정도 시간이 지나기전에 입장할수있어야한다. -> 싱글 코어 환경에서의 문제해결 : 프로세스가 돌아가고있을떄, 다른곳에서 접근을 못하게한다 ( interrupts 를 예방 ) -> 멀티 코어 환경에서의 문제해결 : 프로세스가 ..
어셈블리어 예제 위와 같을시, mov %a, c(%b) 는 a의 값을 c(%b)가 가르키는 주소값에 넣는것이다. ->13번줄의 mov1 %edi, -20(%rbp) 는, rbp의 주소값인 100에서 20을 뺸 주소에 edi의 값인 10을 넣으라는 뜻이다. ->17번줄의 imull -28(%rbp), %eax 는, rbp의 주소값인 100에서 28을 뺸 주소(72)의 값 3을 eax의 값 13과 곱하라는 뜻이다. -> 39 -> 21번줄의 add1 %edx, %eax 는, %edx와 %eax의 합을 %eax에 넣으라는뜻이다. : 결국 Address라는 공간은 데이터값들을 저장시킬수있는 메모리의 공간들이라고 이해할수있다. (어셈블리의 관점)
System calls -> os에서 자체적으로 제공해주는 프로그램 인터페이스 / os에서 제공하는 함수 os : 하드웨어를 컨트롤하는 소프트웨어 - File Open O_APPEND : 시작지점에서 파일을 오픈할떄 , 파일의 마지막부분에 추가하는것 O_CREAT : 파일이 존재하지않으면, 새로만드는것 O_DIRECTORY : 디렉토리를 여는것 O_EXEL : 이미 존재할경우 에러 O_TRUNC : 일반적인 파일일 경우, 파일을 다 지우고 처음부터 새로 씀 - Mode ( S_I 는 공통) write와 append의 차이 write는 오픈시 그냥 긴 문자열들의 나열 ->이후 풀이는 사용자의 몫 (위치지정. 등) ( 기본적으로 파일의 첫지정으로감) append 은 오픈시 앞의 내용은 보전하고 뒤부터 .. ..
- 멀티프로세싱과 멀티테스킹의 차이 멀티프로세싱 : CPU가 여러개있어서 동시에 여러개의 명령어를 수행가능한것 멀티테스킹 : 여러개의 프로세스(테스크)를 수행하는데 CPU가 여러개일 필요하없다 ( time-sharing ) - Process State - New : 프로세스가 만들어질떄 - Running : 프로세스가 수행될떄 - Waiting : 수행하라는 명령이 올떄까지 기다리고있는 과정 ( Ready로 가기전 대기 ) - Ready : 언제든지 Running에 들어갈수있을떄 - Terminated : 프로세스가 종료될떄 - Process Scheduling CPU상에서 프로세스를 어떤순서로 수행할지 정하는 과정 -> 그떄그떄마다 상태를 파악해서 PICK : I/O bound process : 사용자..
- POSIX Portable Operationg System Interface -> 함수의 형식을 통일하여 사용자들이 사용할 인터페이스를 맞춰놓은것 -> OS 상호간의 소통을 보장 - Linux -> "Home" 디렉토리 : (=내 폴더) : "~" -> 현재 디렉토리 : "." -> 상위 디렉토리 ".." - Absolute Pathname : 절대경로 ex) /home/smu/test1 - Relative Pathname : 상대경로 현재위치를 기준 ex) ./test1 ~ - File System -> Mount / Unmount : 파일시스템을 적용 / 해제 -> Process : 실제로 수행되고 있는 프로그램 ( 메모리에 올라와 있는 ) : 각각 개별적으로 id가 있다 (=PID) ex) 웹브..