교착상태 (dead lock)

PUBLISHED 2012. 2. 18. 23:11
POSTED IN 공장
교착상태는 시스템에서 4가지 조건이 동시에 발생할때 나타남
  • 상호배제 (mutual exclusion)
    • 자원이 최소 하나 이상 비공유 (한번에 한 프로세스에만 자원이 할당)
  • 점유와 대기 (hold and wait)
    • 최소 하나의 자원을 보유하면서 다른 프로세스에 할당된 자원을 대기
  • 비선점 (non-preemptive)
    • 다른 프로세스의 자원을 뺏을 수 없음
  • 순환대기 (circular wait)
    • 상대방이 가진 자원을 서로 대기


교착상태 예방(prevention) 기법

  • 상호배제조건 방지
    • 태생적으로 공유가 불가능한 자원도 있기 때문에 어려움
    • 공유가능한 자원은 원래 배타적 접근을 요구하지 않음
  • 점유와 대기조건 방지
    • 프로세스가 작업 수행 전에 필요한 모든 자원을 한꺼번에 요청하고, 획득해서 작업수행
    • 혹은 자원을 전혀 갖고 있지 않을 떄만 자원을 요청할 수 있도록 허용
  • 비선점 조건 방지
    • 어떤 자원을 가진 상태에서 새로운 자원을 얻으려는데 실패하면 가진것도 내 놓기
      • 진행중이던 작업의 상태를 쉽게 저장/복구할 수 있어야 한다는 조건이 필요함
    • 필요한 자원을 대기 프로세스가 선점하고 있다면 뺏아서 쓰기
      • 만약 필요한 자원을 추가로 얻지 못하면 자신이 대기 프로세스 상태가 되고, 누군가 자원을 뺏아갈 수 있음
  • 순환대기조건 방지
    • 자원에 일련의 순서를 부여하고, 각 프로세스는 오름차순으로만 자원을 요청할 수 있도록 하기
    • 자원의 낭비 가능성


교착상태 회피(avoidance) 기법

  • 프로세스 시작 거부
    • 프로세스의 요구가 교착상태를 발생시킬 수 있다면 프로세스 시작을 중단시킴
  • 자원할당 거부
    • 프로세스의 요구가 교착상태를 발생시킬 수 있다면 자원을 할당하지 않음
    • 은행가 알고리즘(Banker's Algorithm)


교착상태 회복(recovery) 기법

  • 프로세스 중지
    • 교착상태 프로세스를 모두 중지
    • 교착상태가 끝날때 까지 하나씩 중지
  • 자원선점
    • 어떤 프로세스의 자원을 뺏아서 다른 프로세스에게 주기
    • 사전 해결조건
      • 비용최소화를 위해 적절한 선점순서 결정 필요
      • 자원을 뺏긴 프로세스의 안정적인 상태복귀
      • 동일한 프로세스가 계속 자원을 뺏기는 일이 없도록 (기아상태 방지:식사하는 철학자 문제)




    '공장' 카테고리의 다른 글

    i-node  (0) 2012.02.19
    맥, 라이언 (Mac OS X, Lion) 시스템 폰트 바꾸기  (0) 2012.02.01
    UML - 연관, 집합, 합성, 상속  (0) 2012.01.22
    맥에 패러럴즈를 설치하고, Windows를 올려서 쓰고 있는데 패러럴즈의 환경설정을 아무리 주물러봐도 폴더 공유가 안된다. 하여 생각해 낸것이 상호 네트워크 드라이브 마운트하기...

    우선 맥에서 윈도우즈 폴더 공유해서 사용하기
    1. Windows에서 암호가 있는 사용자 계정을 생성
    2. 공유할 폴더를 생성하여 공유시키고, 1에서 생성한 사용자에게 권한을 부여
    3. Windows의 cmd창에서 ip 확인


    다음으로 맥에서 윈도우즈 폴더에 접근하기
    1. Finder > 이동 > 서버에 연결
    2. 윈도우즈의 주소 입력
        (주소가 10.3.27.6 이라면 smb://10.3.27.6으로 입력)
    3. 맥이 주소를 찾으면 ID와 비번을 물어보는데, Windows에서 생성해둔 사용자 계정 ID와 암호를 입력
        (비밀번호가 없는 Administrator로 연결할려고 했는데 안됐다)


    단점은 패러럴즈가 닫히면 연결도 사라진다는점.
    패러럴즈를 다시 띄우고, 윈도우즈를 올리면 다시 마운트됨.


    끝!!


    참고자료
    http://lifehacker.com/247148/how-to-mount-a-windows-shared-folder-on-your-mac
    Windows에서 사용자가 여럿일때 자동 로그인 하기
    Windows에서 mac 폴더에 접근하기


    맥, 패러럴즈 + Windows 7 사운드카드 문제

    PUBLISHED 2012. 2. 5. 15:03
    POSTED IN 생활

    패러럴즈에 Windows 7을 설치하고, 보니 사운드카드가 안 잡혀있다. 

    맥에서는 접근할 수 없는 컨텐츠를 위해 꼭 필요한 기능이니 어떻게든 살려하는 미션이 생겨버렸다. (ㅠ..ㅠ) 




    폭풍 구글링을 하는 동안 혹시나 하는 마음에 Windows 7설치 후 첫번째 시스템 업데이트 후 재부팅을 하니
    소리가 난다. (ㅡ..ㅡ)
    기쁜데 허무하다.


    장치관리자에서 확인해보니
    스피커와 마이크는 다음으로 설정되어 있었다.
     Intel(r) 82801BA/BAM AC'97 Audio Controller

    맥, 패러럴즈에 USB로 Windows7 설치하기

    PUBLISHED 2012. 2. 5. 14:05
    POSTED IN 생활
    어지간하면 맥에 패러럴즈와 Windows를 설치하지 않으려고 했는데 어쩔 수 없이 설치할 일이 생기고야 말았다.
    그런데 내가 가진 것은 USB에 담겨있는 Windows 7..
    패러럴즈를 설치한 다음 켰더니 흔한 플로피디스크도 마운트 되어 있던데 USB가 없었다.
    하여 USB를 이용한 설치 실패..


    집을 홀랑 뒤져보니 예전에 쓰던 PC의 하드 복구디스크를 만들어 둔게 있었다.
    이걸 넣었더니 일단 복구시도...
    컴퓨터가 다르니 복구에는 실패했지만 어쨌든 DOS는 띄을수가 있어서 USB에 있는 Windows 7의 setup.exe를 실행시켜 설치할 수 있었다. 


    (1) 패러럴즈에서 윈도우즈를 설치할때 복구디스크를 넣고 설치를 시도하면 일단 윈도우즈가 부팅됨 
    (2) 도스창을 열어 놓고, 패러럴즈에서 CD와의 연결을 끊고, 다시 맥에서 CD와의 연결을 끊으면 CD가 튀어나옴 
    (3) 설치 디스크를 넣고 설치시작... (x:/setup.exe가 있었다)



    1. 폰트설치
        /Library/Fonts 폴더에 복사 (확장자는 otf, ttf, ttc 등)

    2. 폰트설정 바꾸기
        /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreText.framework/Versions/A/Resources/DefaultFontFallbacks.plist 파일

    3. 서체 부드럽게
       defaults -currentHost write -globalDomain AppleFontSmoothing -int 2
       (맨 뒤에 숫자변경)


    참고
    - Mac OS X Lion 폰트변경(Apple Gothic -> 나눔고딕