봉쇄형 시스템 호출이 뭔가요?

harai34의 이미지

Blocking system call이라고도 하던데, 정확히 뭔가요?

쓰레드를 공부하는 중에 나오더라구요.

멀티 프로세스라는건 한번에 여러 프로세스를 동시에 실행한다는 의미인가요?

CPU는 한번에 한가지 일만 처리하지 않나요?

그리고 한가지만 더 질문할께요.

시스템 콜과 인터럽트의 차이가 정확히 어떤건지 좀 알려주세요.

아직 초보라 궁금한게 많습니다. ^^

부탁드립니다.

clique의 이미지

blocking system call은 call이 완전히 수행될 때까지 반환(return)되지 않는 것을 의미합니다. 반대로, call후에 바로 return되고 다른 접근 방식을 이용해서 값을 가져오거나 할 수도 있습니다.

>멀티 프로세스라는건 한번에 여러 프로세스를 동시에 실행한다는 의미인가요?
>CPU는 한번에 한가지 일만 처리하지 않나요?
실제 물리적인 코어의 개수는 적으나, OS나 기타 다른 요소에 의해서 그보다 훨씬 많은 프로세스(유저 프로그램 등)가 동시에 동작하는 것 처럼 보여줍니다. 그러므로.. 동시에 실행할 수도 있지만(프로세스의 개수가 코어 수보다 적은 경우) 대부분의 경우 몇개 안되는 코어를 여러 프로세스가 빠르게 번갈아 가면서 실행해서 동시에 실행하는 것처럼 보여지게 되는 것이죠.

>시스템 콜과 인터럽트의 차이가 정확히 어떤건지 좀 알려주세요.
시스템콜은 다소 운영체제의 관점에서... 유저 프로그램이 커널 영역의 기능을 사용하고자 할 때 이용되는 인터페이스입니다. 현대의 운영체제는 대부분 유저 프로그램과 실제 운영체제의 커널을 분리하는데, 유저 프로그램은 커널에서 제공하는 인터페이스 만을 이용해서 원하는 동작을 수행하게 끔 되어 있습니다. 왜냐하면.. 대체적으로 이래야 블루스크린과 같이 다른 프로그램의 영역을 침범하거나 해서 시스템이 죽는 것을 방지하기가 용이하기 때문이죠.

인터럽트는 비동기적인 동작의 처리에 관련된 내용입니다. 보통 ISR(Interrupt Service Routine)이라는 특정 Interrupt 신호가 있을 때 수행되어야 할 동작을 정의해두고, 관련된 신호가 발생하면(hw/sw) ISR을 이용해서 처리를 하게 되죠. 가령 어떤 버튼을 사용자가 누르면 화면에 무언가가 표시 되어야 할 때, 버튼을 누른 것을 알아내기 위해 계속해서 관련된 값을 체크하는 것은 비효율 적이죠. 버튼에 대한 처리(화면에 표시함)를 ISR로 정의하고, 버튼이 눌렸을 때 ISR이 동작하게 끔 해두면, 남는 시간에 다른 일을 수행하여 전체적으로 자원을 효율적으로 활용할 수 있습니다. 물론 인터럽트를 처리하기 위한 다소의 비용은 발생합니다(수행중인 작업과 관련된 내용을 저장하고 복구하는 등). 그러므로 인터럽트는 언제 발생할지 알 수 없는 작업이나, 가끔 발생하는 작업에 특히 유리하며, 지속적으로 체크하는 방법은 동작의 발생시점을 충분히 예상할 수 있을 때 유리합니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.